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

        };

ノックアウト.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 に答える