0
我從一個Web API加載數據是這樣的:淘汰賽JS更新知名度基於物業價值
$.getJSON("/api/Rule", function (rules) {
self.Rules(rules);
});
然後我使用foreach綁定綁定Rules
到表。每個Rule
具有以下屬性:Keyword
,Attribute
和Value
。
我想檢查一下Keyword
是否是控制某些控件可見性的某個值。
data-bind="options: viewModel.Attributes, visible : Keyword != 'Else'"
問題是當我將Keyword
的值更改爲不同值時,可見性未更新。
我如何得到這個工作?
如果它應該是通過某種綁定,我沒有在我的視圖模型中聲明一個特殊的對象,我只是使用從服務器返回的任何東西。
結帳的淘汰賽映射插件:http://knockoutjs.com/documentation/plugins-mapping.html這將幫助你從JSON數據創建一個可觀察的。還請確保檢查您是否需要關鍵字或關鍵字()。我會用data-bind =「text:Keyword」添加一個span,這樣你就可以檢查這個值是什麼。當我有更多時間時,我會發布更完整的答案 –
@WouterdeKort我確實放置了一個跨度,而我沒有看到關鍵字值未更新。使用關鍵字()也不起作用。它會拋出一個錯誤「功能預期」。我猜你不能在數據綁定設置中使用它。 –
更新:我創建了一個與我的Web Api返回的對象完全相同的對象,稱爲Rule,而不是像上面那樣設置值,而是對返回的數據執行$ .each並手動創建了KO對象的集合然後我可以看到,在我關閉後,該值會被更新爲immadieatly。我怎樣才能做到這一點,而不是在KO中創建一種重複/冗餘的對象 –