2012-08-13 7 views
1

제품 객체에 성분을 추가하고 싶습니다.배열 배열에 객체 추가

: 그런 일이 될 것입니다 ..

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

을하지만 지금은 마지막 제품이 추가 액세스 성분을 추가해야합니다 : 나는 아래의 코드를 할 경우

<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[0].ingredients.push({name:"ingredient 3"}) 

하지만 그렇게하면 'TypeError : 정의되지 않은'속성의 '재료를 읽을 수 없습니다.'라는 오류가 발생합니다.

+0

문제를 설명하기 위해 바이올린을 만드실 수 있습니까? – WickyNilliams

+0

'그룹'이란 무엇입니까? – Ilya

+0

@llya 죄송합니다. 그룹이 제품이되었습니다. 나는 단지 설명에서 그것을 고친다. – MuriloKunze

답변

1

나는 당신을 위해 바이올린을 썼습니다. 그것은 작동합니다! 당신이 products()[0] 있지만 products[0]를 작성해야한다 products()이 바이올린은 새로운 녹아웃 스타일
http://jsfiddle.net/hBsFM/3/
get value
의미하고
http://jsfiddle.net/zjF6c/

를 사용하는 스타일이 바이올린 때문에
는 액세스하려면
+0

완벽, 감사합니다 :) – MuriloKunze

+0

당신을 환영합니다;) –