使用ko.obserbaleArrays时出现问题...
这是我的可观察数组
self.favoriten = ko.observableArray([
{
projectName: "Favorit1", isFavourite: false
},
{
projectName: "Favorit2", isFavourite: true
},
{
projectName: "Favorit3", isFavourite: false
}
]);
现在我想设置“isFavourtite” - 具有如下函数的Property:
self.makeFavourite = function (projectName, data, event) {
//Some Code
};
我现在不知道如何使用knockout.js设置此属性
感谢您的回答
答案 0 :(得分:2)
您可以执行以下操作:
self.makeFavourite = function (projectName, data, event) {
var favorite = ko.utils.arrayFirst(self.favoriten(), function(item){
return item.projectName == projectName;
})
if (favorite){
favorite.isFavourite = data;
}
};
但是如果你想要在UI中更新的值,你必须使projectName和isFavourite可观察。以下是一个示例:http://jsfiddle.net/vyshniakov/UdsDf/
答案 1 :(得分:1)
在makeFavorite函数中使用ko.utils api
var item = ko.utils.arrayFirst(this.favoriten(), function(item) {
return ko.utils.stringStartsWith(item.projectName, projectName);
});
if (item)
item.isFavorite = true;