【发布时间】:2016-02-21 03:35:21
【问题描述】:
我来自 Angular(有/有事件发射),我看到 Knockout 有 'observables'/pubsub,但使用单独的视图模型我无法完全掌握这个概念。
这是我正在尝试做的一个示例:
我在 VM1 中有一个对象数组,当一个元素被更新时,我想发出一个事件,说“这个对象已经改变,请相应地更新!”并且还传递了对象。
我在KO documentation 上找到了这个:
对于高级用户,如果您想注册自己的订阅以在可观察对象发生更改时收到通知,您可以调用他们的订阅函数。
myViewModel.personName.subscribe(function(newValue) {
alert("The person's new name is " + newValue);
});
但它没有提及谁在发布对“myViewModel”的任何更改。谁能澄清一下?
在我的示例中,我是否将一个可观察数组绑定到父对象(可能是 ko)?
编辑:
示例如下:
一个用户至少有一个用户可以管理。
我有一个虚拟机负责显示单个用户的用户帐户设置页面。我有另一个 VM 负责一次显示所有用户的用户。如果用户单击一行(用户的用户),则会出现一个面板来更改该行的数据。当一行发生变化时,我想更新用户用户的主列表。
【问题讨论】:
-
你能想出一个最小但详细的例子来说明你正在寻找的那种行为吗?我不太明白为什么你需要知道是谁做出了改变,或者为什么你有单独的视图模型。
标签: javascript knockout.js publish-subscribe