我有一本字典:
{ "69": true, "72": true, "97": true, "113": false, "136": true, "189": false, "396": true, "404": false, "454": false }
如何使用angularjs按值过滤此数据?我需要得到这个(只有真实):
{ "69": true, "72": true, "97": true, "136": true, "396": true}
答案 0 :(得分:0)
听起来你正试图在代码方面获得一个列表,而不是模板。
var checked = {};
for(var key in $scope.boxes){
if($scope.boxes[key])
checked[key] = true; // true or $scope.boxes[key], which in your case will be true
}
// checked will be { "69": true, "72": true, "97": true, "136": true, "396": true}
根据您是否需要随每次检查不断更新此值,您可能需要将checked
放入$scope
和$watch
$scope.boxes
,运行此项每次改变。
如果您在做某事之前只需要检查的内容,最好在做之前找到所检查的内容。只需将$scope.boxes
传递给此人:
function findChecked(obj){
var checked = {};
for(var key in obj){
if(obj[key])
checked[key] = true; // true or obj[key], which in your case will be true
}
return checked;
}
答案 1 :(得分:0)
var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope) {
$scope.item = { "69": true, "72": true, "97": true, "113": false, "136": true,
"189":false, "396": true, "404": false, "454": false }
$scope.getValues = function(item)
{
var ary = [];
for(var key in item){
if(item[key])
ary.push(key);
}
return ary;
});
html: <li ng-repeat='c in getValues(item)'> {{c}} <li>