Knockout.js在可观察数组push上编写内部函数

时间:2015-11-19 09:02:48

标签: knockout.js

(已更新/已编辑的问题) 我正在关注Knockout.js教程并在尝试更新我的可观察数组时遇到问题。

下面是我显示列表的html:

<tbody data-bind="foreach: shoppingCart">
        <tr>
            <td data-bind="text: name"></td>
            <td data-bind="text: price"></td>
            <td><button data-bind="click: $root.removeProduct.bind($root)">Remove</button></td>
        </tr>
    </tbody>

这是viewmodel:

function Product(name, price) {
        this.name = ko.observable(name);
        this.price = ko.observable(price);
    }


    function PersonViewModel() {

        this.shoppingCart = ko.observableArray([
            new Product("Beer", 9.99),
            new Product("Peanuts", 1.09),
            new Product("COke",1.29)
        ]);

        this.addProduct = function () {
            this.shoppingCart.push(new Product("More Beer", "10.99"));            
        };
    };

以下代码是在我的界面上编写内部功能,而不是在 shoppingCart 列表中添加新项目。

1 个答案:

答案 0 :(得分:0)

更换

this.shoppingCart.push(new Product("More Beer", "10.99"));

this.shoppingCart.push(ko.toJS(new Product("More Beer", "10.99")));

似乎正在解决这个问题。