集合项不会在knockout.js中刷新

时间:2013-11-27 21:01:56

标签: javascript jquery html knockout.js

我在更新集合中的元素时遇到问题。

当我的表单有一个集合并且相同的字段绑定到“输入框”和“span”时,输入框的修改不会传播到span元素。

我的表单如下:

<tbody data-bind='foreach: gifts'>
    <tr>
        <td>
            <input class='required' data-bind='value: name, uniqueName: true' />
            <span data-bind='text: name' >&nbsp;</span>
        </td>
    </tr>
</tbody>

您可以在jsFiddle

上试用

1 个答案:

答案 0 :(得分:1)

您的模型的nameprice需要是可观察的。

所以不是你的:

var viewModel = new GiftModel([
    { name: "Tall Hat", price: "39.95"},
    { name: "Long Cloak", price: "120.00"}
]);

这样做:

var viewModel = new GiftModel([
    new Item("Tall Hat", "39.95"),
    new Item("Long Cloak", "120.00") ]);

其中Items如下:

var Item = function(pName, pPrice) {
    var self = this;
    self.name = ko.observable(pName);
    self.price = ko.observable(pPrice);
};

以下是一个有效的例子:http://jsfiddle.net/D2agq/