0

ビューモデルの外で多くの処理を行う外部オブジェクトがあります。トリガーを使用して、このオブジェクトからデータを送信できるようにしたいと考えています。

を使用してプレーンオブジェクトからサブスクライバーにデータを渡すことは可能valueHasMutatedですか?

function obj(trigger) { 
  var self = this;
  self.notify = function (value) { 
     trigger.call(undefined,value);
  };
}

function vm() { 
  var self = this;
  self.flag = ko.observable();
  self.myobj = new obj(self.flag.valueHasMutated);
  self.flag.subscribe(function(value) { 
      console.debug("Caught trigger with value " + value);
  });
}

ko.applyBindings(new vm());

// trigger
ko.dataFor(document.body).myobj.notify("Working");

トリガーはポップしていますが、取得している値は ですundefined

ここで JSBINの例を設定します

これについての助けに感謝します。

編集ソースを 見ると、「新しい値」を取得していることがわかりますvalueHasMutatedが、それでも機能しません。

4

1 に答える 1

0

OK、回答を投稿して、フラグの値を直接変更します。self.myobj = new obj(self.flag)

于 2013-11-01T17:45:30.993 に答える