0
我在嘗試更新用戶地址時遇到了一個非常奇怪的錯誤。我有兩個領域,這兩個觀測這個簡化的地址對象:無法寫出可觀察的結果
stateProvince.name = ko.observable("");
stateProvince.code = ko.observable("");
現在,當我嘗試更新這兩個後來,這是有效的執行程序中開發工具:
stateProvince.name("New York");
stateProvince.code("NY");
但第二行實際上並沒有改變狀態碼的值。沒有發生任何異常,嘗試在開發工具中更改它不起作用,最奇怪的部分是更改代碼時更改失敗的所有代碼都可以正常工作。什麼樣的條件可能導致淘汰賽無法更新而沒有錯誤?我試圖擴展現有的代碼庫,但我的搜索沒有透露任何可以區分這兩個對象的東西。
你最好的選擇是嘗試在jsFiddle中重現它。從這段代碼看起來很好。如果我不得不猜測,我會說你的'code'綁定到'select'。如果你在select元素上使用'value'綁定(通常是'options'),那麼Knockout會試圖強制你的observable的值對應一個選項。也許「NY」與選項不匹配。 –
它是一個選擇! NY是一個選項,但它可能還沒有存在,因爲正在生成的選項的可觀察數組尚未創建。謝謝,我將添加一個回調,當選擇選項填充。 – jokulmorder