我有一个应用于ng-repeat区域的自定义过滤器,由于某种原因,items.length返回为undefined。奇怪的是,一切仍然按预期工作。有没有正确的方法来读取数组长度?
app.filter("myfilter", function() {
return function(items, obj) {
// Defined variables here - omitted from the example
var arrayToReturn = [];
for (var i=0; i<items.length; i++){
// Code here - omitted from the example
}
return arrayToReturn;
};
});
NG-REPEAT
<div ng-repeat="data in filtered = (list | myfilter:{from:xyz} | filter:search | orderBy : predicate :reverse) | startFrom:(currentPage-1)*entryLimit | limitTo:entryLimit" data-name="{{data.customerName}}" ng-click="eventHandler(data, $event)">
答案 0 :(得分:0)
您是从控制台错误还是断点确定未定义的值?在这种情况下,值在被填充之前被过滤并导致它出错。
您可以执行类似
的操作app.filter("myfilter", function() {
return function(items, obj) {
// Defined variables here - omitted from the example
var arrayToReturn = [];
if(items.length) {
for (var i=0; i<items.length; i++){
// Code here - omitted from the example
}
}
return arrayToReturn;
};
});
答案 1 :(得分:-1)
您的过滤器无法获得正确的参数。我怀疑你的{from:xyz}
并没有真正起作用。