1
我希望能夠觀察視圖模型中的對象。我有一個簡單的例子,不能按預期工作,任何人都可以看到問題?從不工作的對象更新視圖模型
採用淘汰賽1.1.1,有2個輸入這樣:
<form data-bind="submit: save">
<input type="text" data-bind="value: deckName" />
<input type="text" data-bind="value: deck().Name" />
<button type="submit">Go</button>
</form>
頁面加載後,輸入獲得的默認值,但在提交表單不會更新viewModel.deck().Name
但viewModel.deckName
是。
<script type="text/javascript">
var initialData = {"Name":"test"};
var viewModel = {
deck: ko.observable(initialData),
deckName: initialData.Name,
save: function() {
ko.utils.postJson(location.href, { deck: this.deck, deckName: this.deckName });
}
};
ko.applyBindings(viewModel);
</script>
在表單POST,deck
仍然會發送「測試」無論輸入而deckName
將相應的輸入值。
我真正想要的是能夠觀察對象viewModel.deck
,然後將其屬性綁定到輸入,但屬性不會更新。
單向綁定在甲板名上的好處。我想要的是帶有'deck'的viewModel作爲來自JSON的observable,然後能夠將其他屬性添加到不是來自JSON的viewModel。 – yanta 2010-12-21 07:51:09
@yanta - 您可以在調用'fromJSON'後添加其他不屬於JSON對象的屬性。該模型可以通過編程方式構建;它不一定要放在一起。 – 2010-12-21 14:11:05
@Sean Vieira - 我把你的第二個例子複製到一個頁面,但viewModel是未定義的,名稱isn; t在輸入中顯示,表單不發佈。任何想法? – yanta 2010-12-21 16:27:28