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,贴出答案,直接修改flag的值:self.myobj = new obj(self.flag)

于 2013-11-01T17:45:30.993 回答