javascript - 将 AngularJS $filter 与 ng-disabled 一起使用

标签 javascript angularjs

我的 $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/

相关文章:

JavaScript 与 WebComponents/ShadowDOM 封装

javascript - 将参数传递给谷歌可视化中的回调函数

javascript - Angularjs:使用 ng-option 时如何在 select 中包含空选项

javascript - 将动态加载的 html 元素分配给变量

javascript - 如何检查是否支持 css box-shadow (jQuery)?

javascript - 无法访问回调函数 React 中的属性

angularjs - 从 AngularUI 的 Bootstrap Typeahead 捕获 "updater" Action

javascript - Angular 绑定(bind)不起作用

javascript - "XMLHttpRequest cannot load"错误?

javascript - Angular : How to allow selecting values outside of ngOptions