我有一個簡單的要求:顯示或根據可觀察的價值隱藏2周的div 1。
我有什麼到目前爲止:
讓我們開始與HTML(非常簡單的2周的div - 當1可見,另一個是隱藏的):
<div data-bind="visible: ActiveClientSideView == 'aValue'">
html content....
</div>
<div data-bind="visible: ActiveClientSideView != 'aValue'">
html content....
</div>
在我的ViewModel我有以下內容:
self.ActiveClientSideView = ko.observable();
除了Ajax調用後,值被更新:
successError: function (result) {
if (result.Code == "INVALID_ADDRESS") {
alert("invalid address");
self.ActiveClientSideView = "AddressRecommendations";
}
警報在那裏檢查代碼是否正在觸發,它是。
我期望的是divs可以像更新ActiveClientSideView一樣輕鬆地顯示/隱藏我錯過了什麼?
EDIT(最新INFO):
當頁面初始加載,我可以設置觀察到的值在init程序,能見度正確的調整,這是對後續(後頁面加載事件),例如按鈕點擊,或稍後,可見性不會動態調整。
看看調試技術在這裏http://stackoverflow.com/questions/9261296/any-good-techniques-to-debug-template-binding-faults-for-knockout-js。特別是嘗試將你的模型輸出到一個文本框,並看看你得到了什麼。 –
似乎「ActiveClientSideView」不可觀察,這使得綁定無法與其值同步。 – patryk