javascript - 如何根据 Angular/JavaScript 中的几个可能值过滤对象数组?

标签 javascript angularjs

我有以下代码:

$scope.a = true;
$scope.b = true;
$scope.c = true;

$scope.myData = [{att: 'a'},{att: 'b'},{att:'c'}  ]

过滤掉所有符合上述条件的对象的最佳方法是什么?

例如,现在我想要所有对象。 但是,如果 $scope.a = false,我只想输出第二个和第三个对象。

最佳答案

看看以下内容:

angular
  .module('test', [])
  .value('data', [{att: 'a'},{att: 'b'},{att:'c'}])
  .run(function($rootScope, data) {
  
    $rootScope.a = true;
    $rootScope.b = true;
    $rootScope.c = true;
    $rootScope.myData = data;
    
    $rootScope.update = function(value) {
      $rootScope[value] = !$rootScope[value];
      
      $rootScope.myData = data.filter((item) => $rootScope[item.att]);
    }
  })
.in {
  background: green;
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<section ng-app="test">
  
  <button ng-class="{'in' : a}" ng-click="update('a')">a</button>
  <button ng-class="{'in' : b}" ng-click="update('b')">b</button>
  <button ng-class="{'in' : c}" ng-click="update('c')">c</button>

  
  <article ng-bind="myData | json"></article>
</section>

关于javascript - 如何根据 Angular/JavaScript 中的几个可能值过滤对象数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38798287/

相关文章:

javascript - 如何防止从 Web 浏览器中的登录页面保存凭据

javascript - 插件不适用于 JQuery-3.1.0

javascript - Console.log() 在 Q 中打印 Promise 对象的状态和值

angularjs - 使用 AngularJS 解析 SVG

css - 如果条件为真则隐藏元素

angularjs - 注入(inject) restangular 时出错

javascript - 无法覆盖显示 :none in JavaScript

javascript - 检测 Angular JS 中滚动到文档末尾的实现

javascript - 在 $routeProvider 解析方法中注入(inject) Controller

javascript - 在 Angular-JS 中,如何根据所选行中包含的数据显示按钮?