2012-08-13 159 views
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:无法读取属性'成分'未定义的'投掷。

+0

你可以创建一个小提琴来演示你的问题吗? – WickyNilliams 2012-08-13 13:27:48

+0

'组'是什么? – Ilya 2012-08-13 13:40:24

+0

@llya对不起,群组是产品。我只是在描述中修复它。 – MuriloKunze 2012-08-13 13:52:18

回答

1

我给你写了一个小提琴。有用!
要访问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