我有一个像这样的文件对象列表:
{"name":"A1.java", "analyze":false, "index":0},
{"name":"A2.java", "analyze":true, "index":1},
{"name":"A3.java", "analyze":false, "index":2}
我正在尝试显示包含"analyze":true
的文件名。我认为它需要是这样的:
<div class="row">
{{m.files.name | filter: m.files.analyze == true}}
</div>
但这并没有给我一个错误,而且它没有显示任何内容。
编辑:我知道有很多方法可以做到这一点,但我对过滤特别感兴趣。如果您的答案不涉及过滤或为什么无法通过过滤完成,请不要打扰,我已经知道如何做到其他方式。
答案 0 :(得分:1)
使用ng-repeat和过滤器显示符合条件的所有行,如下所示:
<div ng-repeat="file in m.files | filter: {analyze: true}">
{{ file.name }}
</div>
或者,如果你想简单地评估m.files以获得像analyze = true这样的条件,你可以创建一个自定义过滤器,比如
app.filter('fileFilter', function() {
return function(files) {
var result = false;
angular.forEach(files, function(file) {
if (file.analyze) {
result = true;
}
});
return result;
};
});
并像这样使用它:
<div ng-show="(m.files | filter:fileFilter)">
答案 1 :(得分:0)
你可以试试这个
function PersonalFilter(data){
return (data.analyze)? data.name:"";
}
app.filter('myFilter', function() {
return PersonalFilter;
});
<div class="row">
{{m.files | myFilter}}
</div>