Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Knockout.js在observable array push上编写内部函数_Knockout.js - Fatal编程技术网

Knockout.js在observable array push上编写内部函数

Knockout.js在observable array push上编写内部函数,knockout.js,Knockout.js,(更新/编辑的问题) 我正在学习Knockout.js教程,在尝试更新我的observable数组时遇到了一个问题 下面是用于显示列表的html: <tbody data-bind="foreach: shoppingCart"> <tr> <td data-bind="text: name"></td> <td data-bind="text: price"></t

(更新/编辑的问题) 我正在学习Knockout.js教程,在尝试更新我的observable数组时遇到了一个问题

下面是用于显示列表的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>
下面的代码是在我的UI上编写一个内部函数,而不是在我的购物车列表中添加新项目。

替换

this.shoppingCart.push(新产品(“更多啤酒”、“10.99”)

this.shoppingCart.push(ko.toJS(新产品(“更多啤酒”,“10.99”))


似乎正在解决这个问题

请按照以下指南更新您的答案:@JotaBe我相信您是在要求我更新我的“问题”,而不是我的“答案”。无论如何,我找到了一个解决问题的方法,我会用它更新我的问题。谢谢。你说得对,我是说你的问题。你还是应该这样做。即使没有看到其余的代码和HTML,即使您自己的答案有效,这看起来也不是一个好主意。如果你愿意修改你的Q,我,或者其他人,可以给你更好的建议。试着阅读你的问答,就好像你没有读过这本书,或者没有做过代码示例一样,你就会理解我的观点。我没有更新这里的问题,这并不是粗鲁,但这个问题对我来说似乎没问题。这就是为什么我一开始就这样提出这个问题。你能澄清一下问题的哪一部分让你感到困惑吗?我也不认为你想表现得粗鲁;)我只是想帮你写出更好的问题。显示viewmodel定义代码,以及shoppiongCart和addProduct成员(其余的问题无关紧要)。显示与viewmodel相关的HTML部分(可能是带有foreach和按钮的元素,或者类似的东西)。别提我们看不懂的书。最后,不要简单地说“这对我不起作用”:解释你预期会发生什么,以及会发生什么。相信我,即使它起作用,你的答案也不好——更新你的Q,我会解释的。秋千
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"));            
        };
    };