将对象添加到数组数组
问题描述:
我想将成分添加到产品对象。将对象添加到数组数组
<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:无法读取属性'成分'未定义的'投掷。
答
我给你写了一个小提琴。有用!
要访问products
,你必须写products()[0]
,但不products[0]
,因为()
意味着get value
这个小提琴是在新的淘汰赛风格
http://jsfiddle.net/hBsFM/3/
这小提琴在您使用
http://jsfiddle.net/zjF6c/
+0
完美,谢谢:) – MuriloKunze 2012-08-13 14:19:37
+0
不客气;) – 2012-08-13 14:22:18
你可以创建一个小提琴来演示你的问题吗? – WickyNilliams 2012-08-13 13:27:48
'组'是什么? – Ilya 2012-08-13 13:40:24
@llya对不起,群组是产品。我只是在描述中修复它。 – MuriloKunze 2012-08-13 13:52:18