【发布时间】:2011-05-28 10:46:05
【问题描述】:
我希望能够观察视图模型内的对象。我有一个没有按预期工作的简单示例,任何人都可以看到问题吗?
使用淘汰赛 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,然后将其属性绑定到输入,但属性不会更新。
【问题讨论】:
标签: knockout.js