AngularJS读取数组长度

时间:2016-03-04 17:18:15

标签: javascript angularjs

我有一个应用于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)">  

2 个答案:

答案 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}并没有真正起作用。