0

, 내가 성공적으로 결합 된 observableArray를 얻기 위해 싸우고 있었고,으로 로 좁혀 바인딩. 의 Foreach는 아무런 문제가 없지만오류 catch되지 않은 ReferenceError가 발생합니다 : "() {contactLists를 반환} 기능"바인딩을 처리 할 수 ​​없습니다입니다.Knockout.js는 foreach는 작품을 결합하지만 바인딩 함께 않습니다 Knockout.js 3.2.0를 사용하지

아무도 내가 무슨 일이 일어나는지 이해할 수 있습니까?

이 작동 :

<!-- ko foreach: contactLists --> 
    <p data-bind="text: title"></p> 
<!-- /ko --> 

이하지 않습니다 :

<!-- ko with: contactLists --> 
    <p data-bind="text: title"></p> 
<!-- /ko --> 

ko.observableArrayapplyBindings 선언 :

var viewModels = { 
     contactLists: ko.observableArray([new ContactList({title: "This Is List #1", subCount: 4321}), new ContactList({title: "List #2", subCount: 9876}), new ContactList({title: "jList #3", subCount: 1234})]) 
    } 

    ko.applyBindings(viewModels); 

도움을 주셔서 감사합니다.

답변

0

"with"바인딩은 배열에서 작동하지 않습니다. 작동시킬 요소를 지정해야합니다. 예 : 귀하의 조언으로

<!-- ko foreach: contactLists --> 
    <!-- ko with: data --> 
    <p data-bind="text: gender"> </p> 
    <!-- /ko --> 
<!-- /ko --> 


function ContactList(data) { 
    this.title = data.title; 
    this.subCount = data.subCount; 
} 

var viewModels = { 
    contactLists: ko.observableArray([ 
    {title: "This Is List #1", data: { subCount: 4321, gender: "male"}}, 
    {title: "List #2", data: { subCount: 5321, gender: "female"}}, 
    {title: "jList #3", data: { subCount: 1221, gender: "any"}}]) 
} 

ko.applyBindings(viewModels); 

See the Pen

+0

나는 그것을 작동시킬 수 있었다. 나는 그것을 놓쳤다는 것을 믿을 수 없다. 좋은 캐치! – jlaplante