0

我在使用 ko.obserbaleArrays 时遇到问题...

这是我的可观察数组

self.favoriten = ko.observableArray([
                {
                    projectName: "Favorit1", isFavourite: false
                },
                {
                    projectName: "Favorit2", isFavourite: true
                },
                {
                    projectName: "Favorit3", isFavourite: false
                }
                ]);

现在我想设置“isFavourtite”- 属性,其函数如下所示:

  self.makeFavourite = function (projectName, data, event) {
      //Some Code

        };

我现在真的不知道如何使用 knockout.js 设置此属性

谢谢您的回答

4

2 回答 2

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/

于 2013-01-23T10:00:50.813 回答
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;
于 2013-01-23T10:03:46.660 回答