我的 $scope
中有一个对象,其中包含大量有关选举的详细信息。该对象包含一个 voters
对象数组,每个对象都有一个 _id
:
$scope.election = {
voters: [
{ _id: '123' },
{ _id: '456' },
{ _id: '789' }
]
}
此外,在我的范围内,我还有有关当前登录用户的详细信息:
$scope.user = { _id: '456' }
如何将 ng-disabled 绑定(bind)到对象数组 $scope.voters
中存在的 $scope.user._id
?
我尝试过的
我成功地简单地显示在$scope.election.voters
中存在$scope.user._id
,如下所示(Jade语法):
pre(ng-bind="election.voters | filter:{user._id} | json")
当当前用户位于选民
中时,他们就会被显示。当他们不在选民中时,我得到一个空数组。这看起来非常接近我想要的。
但是在禁用 ng 的情况下使用相同的过滤器(sans | json
),我收到 Angular Infinite $digest loop 错误。
这个情况是不是太复杂了?我应该将其移至 $filter
吗?如果是这样,我将如何使其足够通用以在多种情况下有用(如果这甚至可行)?
最佳答案
可以直接在 Controller 中运行简单的过滤器,或使用app.filter('filterName', func...)
创建可在标记中使用的自定义过滤器
$scope.userIsVoter = function() {
return $scope.election.voters.filter(function(el) {
return el._id == $scope.user._id;
}).length
}
<button ng-disabled="userIsVoter()">Do Something</button>
关于javascript - 将 AngularJS $filter 与 ng-disabled 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19991010/