KNOCKOUTJS:我遇到了此错误 未捕获的类型错误:无法读取未定义的属性'messages'



我正在尝试将对象转换为可观察对象,但是我的计算函数不起作用

onlineFriends.friend = function(data) {
var item = {
country : ko.observable(data.country),
firstName : ko.observable("oto"),
userName  : ko.observable(data.username),
id : ko.observable(data.id),
picture : ko.observable(data.picture),
hasInitMessage : ko.observable(false),
messages : ko.observableArray([]),
hasInitMessage : ko.observable(false),
unreadmessages_count : ko.computed(function() {
var unreadMsg = [];
ko.utils.arrayForEach(item.messages(), function (item) {
if(item.messageStatus === "UNREAD"){
unreadMsg.push(item);
}
});
return unreadMsg.length;
}),
//onlineFriends.friendsOnline.push(self);
}
return item;
};

我理解它抱怨我想循环遍历的 message(( 可观察数组,但是我该如何编写代码。

尝试将计算声明更改为

unreadmessages_count : ko.computed(function() {    
var unreadMsg = [];
ko.utils.arrayForEach(this.messages(), function (item) {    
if(item.messageStatus === "UNREAD")  
unreadMsg.push(item);             
});
return unreadMsg.length;
},this)

我猜范围界定会与您当前的实现搞砸

相关内容

最新更新