我收到了这个错误
SyntaxError: Unexpected token '}'. Expected a ':' following the property name 'value'.
(anonymous function)
这样做:
var datas1 = [];
angular.forEach(data.data, function(value, key) {
if(value.comfi_type_id == "1" || value.comfi_type_id == "3" || value.comfi_type_id == "4")
datas1.push({value})
})
$timeout(function() {
$scope.items = {'data':{'data1':datas1}};
}, 1000);
代码在Chrome上正常运行,但只有Safari出现错误。谁能开导我,有什么不对?
Question Update
我这样做之后
datas1.push({value:value})
现在可以在Safari浏览器中正常运行。但是现在当我尝试使用ios设备(这是离子应用程序)时,代码无法运行。 datas1
我想当Safari上的一切正常工作时,还可以使用ios设备吗?
答案 0 :(得分:3)
Safari可能不支持短对象表示法({value})。您必须指定键和值:
public class PersonValidator : AbstractValidator<PersonVm>
{
public PersonValidator()
{
RuleFor(model => model.FirstName).NotEmpty();
RuleFor(model => model.LastName).NotEmpty();
}
}
public class PersonMustBeRegisteredValidator : AbstractValidator<PersonVm>
{
private readonly IQuery<PersonExists> _query;
public PersonMustBeRegisteredValidator(IQuery<ReturnPerson> query)
{
_query = query;
Custom(model =>
{
var person = _query.Select(new { model.Id });
if (person == null) return new ValidationFailure("Id", "Person does not exist");
return null;
});
}
}}
答案 1 :(得分:0)
我也遇到过这个问题。那是因为我正在使用
var newObj = [];
for (var k in dataArray) {
newObj.push(datArr[k]);
}
这个for-loop&#39;仅在Safari中创建问题,它还向数组添加一个函数对象,并且数组长度始终为实际长度+ 1。
我通过使用以下格式替换此for循环来修复,
var newObj = [];
for (var k = 0 ; k < dataArray.length; k++) {
newObj.push(datArr[k]);
}