我试图使用过滤器有条件地显示JSON对象的某些字段。目前显示的内容如下:
JSON输出:[
{ tag: "Reading", checked: true },
{ tag: "Writing", checked: false },
{ tag: "Homework", checked: true},
{ tag: "Groupwork", checked: false }
];
期望的输出:
Reading, Homework
我只会显示check == true的那些字段。
HTML / AngularJS:
<div class="item">
<pre ng-bind="tagList | json"></pre>
</div>
其中tagList是上面的javascript对象。
答案 0 :(得分:1)
您可以使用以下内容:
angular.module('myApp',[]).filter('tagsjson', function(){
return function(items){
var arrayToReturn = [];
for (var i=0; i<items.length; i++){
if (items[i].checked) {
arrayToReturn.push(items[i].tag);
}
}
return arrayToReturn.join();
};
});
然后您可以将过滤器用作:
<div class="item">
<pre ng-bind="tagList | tagsjson"></pre>
</div>
Here is a plunker演示了上述内容
PS:你可以命名你的过滤器json,但这会覆盖内置过滤器,就像你的代码一样,不确定这是不是你想要的。