2015-01-17 3 views
0

을 가입 할 때 observableArray에서 선택한 항목의 변경 사항을 반영하기 위해 어떻게 HTML에 바인딩 된 observableArray 선택했다 : 사용자가에서 차를 선택 할 때마다마네 - 수동

내가 selectedCarin에 가입 한
<select name="cars-list" data-bind="options: cars, optionsText: 'name', optionsValue: 'id', value: selectedCar"></select> 

html로 그것은 선택에 다시 항목을 추가 할 것이다, 선택

self.selectedCar.subscribe(function (newValue) { 

    self.cars().push({ 
     id: 124, 
     name: "sample" 
    }); 
}); 

은 내가 observableArray에 푸시 후 경고 권리를 배치하고 내가 항목을 선택할 때마다 과연, 길이가 1 씩 증가.

그러나 HTML 선택 컨트롤에이 변경 사항이 반영되지 않았습니다. 그것은 observableArray에 있었지만 디스플레이에 표시되지 않았습니다. 어떤 아이디어?

답변

0

관측 가능한 배열에 있지만 밑에있는 배열에 직접 push을 호출하지 않으므로 knocout에 변경 사항에 대한 알림이 표시되지 않습니다.

self.cars.push({ 
    id: 124, 
    name: "sample" 
}); 

데모 JSFiddle :

방금 ​​ () cars()에서 제거 할 필요를 해결하려면.

+0

감사합니다. 나는 observableArray가 자신의 push 함수를 가지고 있다고 생각했습니다. 고마워요! –

+0

또는 기본 배열을 변경 한 후에'self.cars.valueHasMutated()'를 호출 할 수 있습니다. –