Angular 解析错误 ng-show
Angular Error Parsing ng-show
我在 index.html 中的 div 上有一个 ng-show,它根据 user-clearances 确定显示哪个 header。这些间隙存储在 $scope.user.clearance 中作为间隙数组 objects。 $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/
知道为什么 angular 对此有困难吗?
因为 ng-show
指令放 $watch
on the expression
which you provide on ng-show
attribute。如果您将表达式作为 string
传递,它会使用当前范围对它们进行求值,但是当您传递带有属性的函数时,将抛出 $parse
错误。
更好地让它工作你可以有 angular 过滤器 |
这会给你预期的结果并且在解析 HTML
时不会抛出任何错误
<div ng-show ="user.clearance &&
(user.clearance | filter: {clearance: 'SUPERADMIN' }).length > 0"
ng-include="'/partials/components/superadmin-header.html'">
如上语法 (user.clearance | filter: {clearance: 'SUPERADMIN' })
将使用范围进行评估,它将 return 具有 clearance
属性 值和 SUPERADMIN
的匹配元素数组.
我在 index.html 中的 div 上有一个 ng-show,它根据 user-clearances 确定显示哪个 header。这些间隙存储在 $scope.user.clearance 中作为间隙数组 objects。 $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/
知道为什么 angular 对此有困难吗?
因为 ng-show
指令放 $watch
on the expression
which you provide on ng-show
attribute。如果您将表达式作为 string
传递,它会使用当前范围对它们进行求值,但是当您传递带有属性的函数时,将抛出 $parse
错误。
更好地让它工作你可以有 angular 过滤器 |
这会给你预期的结果并且在解析 HTML
<div ng-show ="user.clearance &&
(user.clearance | filter: {clearance: 'SUPERADMIN' }).length > 0"
ng-include="'/partials/components/superadmin-header.html'">
如上语法 (user.clearance | filter: {clearance: 'SUPERADMIN' })
将使用范围进行评估,它将 return 具有 clearance
属性 值和 SUPERADMIN
的匹配元素数组.