1

商品オブジェクトに材料を追加したい。

<ul data-bind="foreach: products">
    <li data-bind="text: name"></li>
    <li>
        <ul data-bind="foreach: ingredients">
            <li data-bind="text: name"></li>
        </ul>
    </li>
</ul>

<script>
    var viewmodel = {
        products: ko.observableArray([])
    };

    ko.applyBindings(viewmodel);
</script>

以下のコードを実行すると、正常に機能します。

viewmodel.products.push({
    name:"product name",
    ingredients:[{name:"ingredient 1"},{name:"ingredient 2"}]
})

しかし今、私は最後に追加された製品にアクセスして成分を追加する必要があります..次のようになります:

viewmodel.products[0].ingredients.push({name:"ingredient 3"})

しかし、それを行うと、エラー「TypeError:Undefinedのプロパティ「ingredient」を読み取れません」がスローされます。

4

1 に答える 1

1

私はあなたのためにフィドルを書きました。できます!
アクセスproductsするには を書く必要がありますがproducts()[0]、 ではありませんproducts[0]。これ()get value
、このフィドルが新しいノックアウト スタイル
http://jsfiddle.net/hBsFM/3/であり、このフィドルが http://jsfiddle.net/zjF6c/
を使用するスタイルであることを 意味するためです。

于 2012-08-13T14:14:39.773 に答える