當父可觀察性使用KnockoutJs更改時,如何觸發子元素的更新?Knockoutjs更新孩子,當父母的可觀察到的變化
在我的應用程序中,我正在構建一個翻譯工具。我有一個代表一些文本的原始(默認)值淘汰賽類,有翻譯兒童的集合:
function ParentObject(id, defaultValue) {
var self = this;
self.id = id;
self.defaultValue = ko.observable(defaultValue);
self.children = ko.observableArray();
self.loadChildren = function() {
// standard code to load the children ("lazy load", as I have gobs of data)
}
}
而且孩子
function Child(id, translation, cultureCode) {
var self = this;
self.id = id;
self.cultureCode = cultureCode;
self.translation= ko.observable(translation);
}
父項的默認值屬性綁定到一個輸入控件。
當我更新父項的默認值時,我想要爲每個孩子調用我的翻譯服務。但我對於如何着手有點失落。
- 如何識別父母的「defaultValue」屬性 已更改?
- 當 發生時,我是否應該迭代父代中的孩子,或者以某種方式將其移動到孩子身上?
(請注意,我的例子是從真正的實現簡化)
編輯:加入這一個功能沿着我的默認值元素,還通過舊值:
data-bind=" value: defaultValue, event: {change: updateChildren}"
哪裏updateChildren迭代子數組。
我明白你要去那裏了,我喜歡小提琴的結果。我只是沒有看到我的應用程序中訂閱的事件觸發。 – reallyJim 2012-08-02 20:01:05