我有以下代码:
$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/