我在index.html中的div上有一个ng-show,它根据用户许可确定要显示的标题。这些间隙作为清除对象数组存储在$ scope.user.clearance中。 $ scope.user.clearance的结构如下:
[
{
'clearance':string
}
]
导致解析错误的指令是:
<div ng-show = "user.clearance &&
user.clearance.filter(function(e) { return e['clearance'] === 'SUPERADMIN'; }).length > 0"
ng-include="'/partials/components/superadmin-header.html'">
</div>
表达式:
user.clearance && user.clearance.filter(function(e) {
return e['clearance'] === 'SUPERADMIN';
}).length > 0
在jsfiddle中运行得很好:http://jsfiddle.net/6frqzwee/2/
任何想法为什么棱角都有这个困难?
答案 0 :(得分:1)
因为string
指令放了$watch
on the expression
which you provide on ng-show
attribute。如果将表达式作为$parse
传递,它将使用当前作用域对它们进行求值,但是当您使用属性传递函数时会抛出|
错误。
最好让它工作你可以使用角度过滤器<div ng-show ="user.clearance &&
(user.clearance | filter: {clearance: 'SUPERADMIN' }).length > 0"
ng-include="'/partials/components/superadmin-header.html'">
,这将为您提供预期的结果,并且在解析HTML时不会抛出任何错误
(user.clearance | filter: {clearance: 'SUPERADMIN' })
如上所述语法clearance
将使用范围进行评估,它将返回匹配元素的数组,其中SUPERADMIN
属性值为PFQuery *localStoreQuery = [[PFQuery alloc] initWithClassName:@"MyClass"];
[localStoreQuery fromLocalDatastore];
NSArray *results = [localStoreQuery findObjects];
。