Javascript 未定义传递到自定义筛选器的数据

Javascript 未定义传递到自定义筛选器的数据,javascript,angularjs,Javascript,Angularjs,我是AngularJS的新手,所以如果我问了一些愚蠢的问题(我很可能会问),我很抱歉 我创建了一个自定义过滤器: angular.module("customFilters", []) .filter("mainGroups", function() { return function(data) { var results = []; console.log(data); for (var i =

我是AngularJS的新手,所以如果我问了一些愚蠢的问题(我很可能会问),我很抱歉

我创建了一个自定义过滤器:

angular.module("customFilters", [])
    .filter("mainGroups", function() {
        return function(data) {
            var results = [];
            console.log(data);
            for (var i = 0; i < data.length; i++) {
                if (data[i].mainGroup == 1 || data[i].mainGroup == 2 || data[i].mainGroup == 3) {
                    results.push(data[i]);
                }
            }

            return results;
        }
    });
在控制台中(通过console.log),我可以清楚地看到数据是由15个对象组成的数组<代码>角度。isArray(数据)也返回true。尽管如此,我还是犯了以下错误:

TypeError: Cannot read property 'length' of undefined

我做错了什么?

您的过滤器似乎工作正常。可能是数据问题

angular.module(“customFilters”,[])
.controller('myController',函数($scope){
$scope.data=[{
id:1,
主要组别:1,,
描述:“M”
}, {
id:2,
主要群体:2,
描述:‘N’
}, {
id:3,
主要群体:3,
描述:'A'
}, {
id:4,
主要群体:4,
描述:“H”
}, {
id:5,
主要群体:-1,
描述:“S”
}, {
id:6,
主要组别:1,,
描述:“B”
}, {
id:7,
主要群体:2,
描述:'R'
}, {
id:8,
主要群体:3,
描述:'G'
}, ];
})
.filter(“mainGroups”,函数(){
返回函数(数据){
var结果=[];
控制台日志(数据);
对于(变量i=0;i

显示8个条目中的6个

angular.isArray(data)
为真时,我只需执行代码,就成功地解决了这个问题。我不知道为什么会这样,但至少是这样

    angular.module("customFilters", [])
        .filter("mainGroups", function() {
            return function(data) {
                if (angular.isArray(data)) {
                  var results = [];
                  console.log(data);
                  for (var i = 0; i < data.length; i++) {
                      if (data[i].mainGroup == 1 || data[i].mainGroup == 2 || data[i].mainGroup == 3) {
                        results.push(data[i]);
                      }
                  }

                  return results;
                } else {
                  return data;
                }
        });
angular.module(“customFilters”,[])
.filter(“mainGroups”,函数(){
返回函数(数据){
if(角度isArray(数据)){
var结果=[];
控制台日志(数据);
对于(变量i=0;i
你能创建一个提琴吗?你能从rest服务加载选项列表吗?数据加载可能还没有完成。。。
    angular.module("customFilters", [])
        .filter("mainGroups", function() {
            return function(data) {
                if (angular.isArray(data)) {
                  var results = [];
                  console.log(data);
                  for (var i = 0; i < data.length; i++) {
                      if (data[i].mainGroup == 1 || data[i].mainGroup == 2 || data[i].mainGroup == 3) {
                        results.push(data[i]);
                      }
                  }

                  return results;
                } else {
                  return data;
                }
        });