我以第二次这样的方式从json获得4:9(如果秒数<10) 而不是4:09我试图制作自定义过滤器
<a ng-repeat="tracks in recentTracks" | filter:secondsCheck>
<p>{{tracks.Song}}</p>
<p>{{tracks.Artist}}</p>
<p>{{tracks.Album}}</p>
<p>{{tracks.Length.Minutes + ":" + tracks.Length.Seconds}} </p>
</a>
这是过滤器
app.filter('secondsCheck', function () {
return function (items) {
var filtered = [];
for (var i = 0; i < items.length; i++) {
var item = items[i];
if (items[i] < 10) {
console.log("filter");
filtered.push(0 + item);
}
} return filtered;
};
});
但它甚至无法达到过滤功能。
答案 0 :(得分:0)
要使用自定义过滤器,请在过滤器表达式中指定过滤器的名称,而不是filter:filterName
。
此外,您过早关闭ng-repeat
属性。
修正:
<a ng-repeat="tracks in recentTracks | secondsCheck">
<p>{{tracks.Song}}</p>
<p>{{tracks.Artist}}</p>
<p>{{tracks.Album}}</p>
<p>{{tracks.Length.Minutes + ":" + tracks.Length.Seconds}} </p>
</a>
看起来过滤器的实现也存在问题。您有items[i] < 10
,但items
中的值不是数字,因此始终为false
。希望你一旦达到执行过滤器的程度就可以对其进行排序。