Javascript Can';t将$scope变量传入角度过滤器时发生插值错误
我有一个角度过滤器,它通过检查数组中是否存在用户id将用户id转换为用户图像url,并返回相应的图像url,该数组随过滤器一起传递。Javascript Can';t将$scope变量传入角度过滤器时发生插值错误,javascript,angularjs,ionic-framework,interpolation,angularjs-filter,Javascript,Angularjs,Ionic Framework,Interpolation,Angularjs Filter,我有一个角度过滤器,它通过检查数组中是否存在用户id将用户id转换为用户图像url,并返回相应的图像url,该数组随过滤器一起传递。 过滤器正在工作,ng repeat列表显示了正确的图像url,但我的控制台中有2个错误。 第一个错误在第4行,第二个错误在ionic.bundle.js:13380:32中 错误: 错误:undefined不是对象(正在计算'members.length')错误: [$interpolate:interr]无法插入:{{{participant.atternate
过滤器正在工作,ng repeat列表显示了正确的图像url,但我的控制台中有2个错误。 第一个错误在第4行,第二个错误在ionic.bundle.js:13380:32中 错误: 错误:undefined不是对象(正在计算'members.length')
错误: [$interpolate:interr]无法插入:{{{participant.atternate\u id| idToImage:clubMembers}}TypeError:undefined不是对象 (评估“members.length”)
HTML: {{participant.atternate_id | idToImage:clubMembers}}中的clubMemers是一个数组,如下例所示,从外部源检索:
$scope. clubMembers = [
{"id":1234,"profile":"https://domain.net/pictures/1.jpg"},
{"id":12345,"profile":"https://domain.net/pictures/3.jpg"},
{"id":12346,"profile":"https://domain.net/pictures/4.jpg"}
]
我认为当
成员
为空时,您的筛选器不会处理该条件,因为当您不处理成员时,长度
将出错,代码执行将在该点停止
过滤器
app.filter('idToImage', function () {
return function (id, members) {
if(!members) return; //return nothing in this case
var curMember = id;
var len = members.length - 1; //checking above if before processing members
while(len >= 0){
if(curMember >= members[len].id){
return members[len].profile;
}
len--;
}
}
});
我认为当
成员
为空时,您的筛选器不会处理该条件,因为当您不处理成员时,长度
将出错,代码执行将在该点停止
过滤器
app.filter('idToImage', function () {
return function (id, members) {
if(!members) return; //return nothing in this case
var curMember = id;
var len = members.length - 1; //checking above if before processing members
while(len >= 0){
if(curMember >= members[len].id){
return members[len].profile;
}
len--;
}
}
});
调用筛选器时是否可以检查参数值?调用筛选器时是否可以检查参数值?
app.filter('idToImage', function () {
return function (id, members) {
if(!members) return; //return nothing in this case
var curMember = id;
var len = members.length - 1; //checking above if before processing members
while(len >= 0){
if(curMember >= members[len].id){
return members[len].profile;
}
len--;
}
}
});