我正在使用角度与离子,它的行为非常奇怪。
var loco = UserService.doesOrderExist();
if (UserService.doesOrderExist()) {
if(UserService.orderSize() > 0){
return 'ion-bag';
}else{
return '';
}
} else if (CartService.numItems() > 0) {
return 'ion-ios7-cart';
}
Angular多次调用这段代码。并返回“离子袋”。 然后它突然进入了其他情况(在同一次执行期间)。
doesOrderExist: function() {
return (me && me.current_order);
},
orderSize: function() {
return me.current_order.length;
},
当我进入orderSize时,“我”在一定数量的呼叫后变为未定义。 我尝试了另一种方法:
var loco = UserService.doesOrderExist();
if (loco || loco.length > 0) {
return 'ion-bag';
} else if (CartService.numItems() > 0) {
return 'ion-ios7-cart';
}
但是,尽管每次都没有改变结果,但可能是因为错误:
错误:interr插值错误无法插值:按钮 button-ic ...()}} TypeError:无法读取null的属性'length'。
我只是不确定会发生什么,因为如果我只调用doOrderExist,那么我总是定义“me”,如果我分开进行单独的评估,那么在经过Angular / Ionic调用的几个循环后,“me”就会变得不确定。 任何提示或指示都将非常感激。
答案 0 :(得分:0)
这个问题的问题是js是动态类型的,我接管的代码有时将current_order视为布尔值,有时将其视为数组。