2012-05-08 3 views
0

내가 잘못 된 부분을 이해할 수 없습니다. 제발 도와 주시겠습니까? 'bTest1'이라는 사용자 지정 바인딩, 관찰 가능한 두 데이터 (배열 1 개와 문자열 1 개)를 만듭니다. 적용이 문자열에 바인딩는 KO로 배열에서 잘 작동하지만,하지 : foreach는knockout foreach에서 사용자 정의 바인딩 만들기

여기 내 jsfiddle 링크입니다 : Here

내 코드가

<!-- ko foreach:test --> 
<label><input type="text" data-bind="bTest1:$root.test1,value:$data,valueUpdate:'afterkeydown'" />Test1</label><br/> 
<!-- /ko --> 
<br/> 
<label><input type="text" data-bind="bTest1:test1,value:test1,valueUpdate:'afterkeydown'" />Test2</label> 

내 JS 코드 (같은 가능한 한 쉽게) :

ko.bindingHandlers.bTest1 = { 
     init: function() { 
      console.log('init Test1'); 
    }, 
    update: function() { 
      console.log('update Test1'); 
    } 
}; 


var modelView = function(){ 
    var self = this; 
    self.test = ko.observableArray(['foreach_test','foreach_test1']); 
    self.test1 = ko.observable('test_alone'); 
} 

ko.applyBindings(new modelView()); 

도와 주셔서 감사합니다. 감사합니다. S.

+0

jsfiddle 나를 위해 작동합니다. – freakish

답변

1

안녕하십니까.

ObservableArray는 배열 자체에 대한 변경 (항목 추가/제거) 만 추적하며 포함 된 항목은 변경하지 않습니다. 따라서 동일한 결과를 원하면 배열의 각 항목을 ko.observable로 표시해야합니다.

희망이 도움이됩니다.