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