我有一個對象:淘汰賽訂閱觀察的對象
{ model: settings: { "FirstName": "Joe", "LastName": "Bloggs" } };
在我看來,我的模型進行設置,可觀察到:
this.Settings = ko.observable(ko.mapping.fromJS(model.settings));
這使得FirstName
和LastName
可觀了。
在我看來,我結合做:
<p data-bind="text: Settings().FirstName"></p>
從Settings
我讀值:
`this.Settings().FirstName()`
的問題出現時,我想,當訂閱FirstName
或LastName
變化。
我知道我可以做this.Settings.FirstName.subscribe...
但是,一旦你得到兩件以上的事情,這是很痛苦的。
有沒有辦法做this.Settings.subscribe...
?或者我應該使用自定義綁定?
是的,謝謝你。但我試圖找到一種訂閱更改的方式,而不列出所有的子屬性,因爲Settings對象具有大約20-30個子屬性。當你列出每個孩子的財產時,會非常痛苦。此外,如果你刪除/重命名一個兒童財產一切都打破了,所以如果你可以訂閱父母的水平,這將是理想的:) – Colin 2013-04-24 01:24:49
這是沒有提到你的問題。無論如何,你可以做一些像Ryan爲dirtyFlag所做的自定義綁定(下面的鏈接)。 這個概念是比較對象的初始狀態(映射之前)到對象的當前狀態(通過轉換爲JSON)。 讓我知道如果這不能解決您的問題。 http://www.knockmeout.net/2011/05/creating-smart-dirty-flag-in-knockoutjs.html – KhanSharp 2013-04-24 11:04:42