【发布时间】:2011-12-02 22:58:23
【问题描述】:
单击按钮时,我正在尝试将新项目添加到可观察数组中。我在 knockout.js 网站上非常关注这个示例: http://knockoutjs.com/examples/betterList.html
这是相关的 HTML:
<form data-bind="submit:addItem">
<input id="comment" data-bind="value:itemToAdd.comment, valueUpdate: 'afterkeydown'" />
<input type="submit" value="Save contact" />
</form>
如您所见(这与示例不同),我的“itemToAdd”将有多个属性,其中之一是“comment”。所以我试图像这样绑定它:“value:itemToAdd.comment”(我也试过“value:itemToAdd().comment”)。但这似乎不起作用。这是我的视图模型的相关部分:
var viewModel = {
contactHistory: [{comment: 'test', date: '12/12/2011'}, {comment: 'test2', date: '12/11/2011'}],
itemToAdd: new ko.observable({ comment: 'dd', date: '' }),
addItem: function () {
alert(this.itemToAdd().comment);
if (this.itemToAdd().comment != "")
{
this.contactHistory.push(this.itemToAdd());
}
}
}
警报始终显示“dd”,因此 itemToAdd 似乎没有正确绑定到文本框。有谁知道我做错了什么?
【问题讨论】:
标签: javascript model-view-controller knockout.js