Angularjs TypeError:无法读取属性';年龄';未定义的
以下代码是我的观点“Angularjs TypeError:无法读取属性';年龄';未定义的,angularjs,Angularjs,以下代码是我的观点“ {{obj}} 这是我的JavaScript代码。我使用angular创建了一个自定义过滤器 app.controller('myController', function($scope){ $scope.myData ={arr: [{name:'Rohith',age:23},{name:'Arun',age:24},{name:'Venki',age:25}]}; }); app.filter('myfilter',function(
{{obj}}
这是我的JavaScript代码。我使用angular创建了一个自定义过滤器
app.controller('myController', function($scope){
$scope.myData ={arr: [{name:'Rohith',age:23},{name:'Arun',age:24},{name:'Venki',age:25}]};
});
app.filter('myfilter',function(){
return function(input, minage){
var filtered = [];
if(!minage){
minage = 24;
}
for(var i=0;i<=input.length;i++){
var value = input[i];
if(value.age >= minage){
filtered.push(value);
}
}
return filtered;
}
});
app.controller('myController',函数($scope){
$scope.myData={arr:[{name:'Rohith',age:23},{name:'Arun',age:24},{name:'Venki',age:25}]};
});
app.filter('myfilter',function(){
返回函数(输入,最小值){
var筛选=[];
如果(!minage){
minage=24;
}
对于(变量i=0;i=minage){
过滤。推送(值);
}
}
返回过滤;
}
});
当我尝试运行时,控制台显示:
TypeError:无法读取未定义的属性“age”
我的代码出了什么问题?请解释一下,问题出在数组索引中
for(var i=0;i<=input.length;i++){
}
Plunker:您的
输入
变量等于{name:'Rohith',age:23}
,它是单个对象,而不是数组。您不应该这样访问
var value = input[i];
应该是
var value=input
调试的基础:Tryconsole.log(value)
在阅读value.age
之前,请查看它的输出内容。一些防御性编程的概念可能会有所帮助,在未检查值是否为“nothing”的情况下,不应使用value属性。另一个选项是为每个循环使用一个,这可以确保您获得一个有效项,并且不会超出范围。
for (var i = 0; i < input.length; i++) {
}
var value = input[i];