我的$scope
中有一个对象,其中包含一系列有关选举的详细信息。此对象包含voters
个对象数组,每个对象都有_id
:
$scope.election = {
voters: [
{ _id: '123' },
{ _id: '456' },
{ _id: '789' }
]
}
同样在我的范围内,我有关于当前登录用户的详细信息:
$scope.user = { _id: '456' }
如何将ng-disabled绑定到对象数组$scope.user._id
中$scope.voters
的存在?
我尝试过什么
我已经成功在$scope.user._id
中显示 $scope.election.voters
这样的存在(Jade语法):
pre(ng-bind="election.voters | filter:{user._id} | json")
当voters
中的当前用户 时,会显示它们。当他们在选民中不时,我得到一个空数组。这似乎与我想要的非常接近。
但是使用相同的过滤器(没有禁用ng | json
),我得到Angular Infinite $digest loop错误。
这种情况太复杂了吗?我应该将它移到$filter
吗?如果是这样,我将如何使它足够通用以在许多情况下有用(如果这甚至可行)?
答案 0 :(得分:1)
可以在控制器中运行简单的过滤器,或使用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>