2014-10-10 7 views
0

이것은 HTML5로 단일 페이지 응용 프로그램을 만드는 첫 번째 시도입니다. jquery, knockout 및 sammy를 사용하고 있습니다.바인딩으로 데이터를 채울 수 없습니다.

코드 : http://codepaste.net/apdrme

문제는 내가 잘못 뭘하는지 모르겠입니다. 나는 다음과 같은 것을 알고있다 :

   this.get("#/", function() {     
        this.personList(this.persons); 
       }); 

그러나 나는 그 목록을 어떻게 채울 수 있습니까?

답변

0

일반적으로 jQuery와 ajax 호출을 사용하여 personList를 채 웁니다. personList는 ko.observableArray 여야합니다. 다음과 같이

this.personList = ko.observableArray(); 

this.get("#/", function() {     
    $.ajax({url:"/api/persons/", dataType: 'json', success:function(persons){ 
     this.personList(persons); 
    }}); 
}); 
0

당신은 당신의 목록을 채울 수 :

function ViewModel() {  
    this.personList = ko.observableArray([{"name":"Josh"}, {"name":"Barry"}, {"name":"Mike"}]); 
}; 
[...] 
ko.applyBindings(new ViewModel()); 

에주의가 선언에 ko.observableArray()을 사용합니다. 따라서 인수를 삭제하고 메인 새미 (Sammy) 경로에서 this.personList([{"name":"Josh"}, {"name":"Barry"}, {"name":"Mike"}])으로 전화를 걸어 다른 경로의 다른 값으로 목록을 채울 수 있습니다.

또 다른 실수는 여기에 필요하지 않은 with-binding을 사용했다는 것입니다. documentation about it을 확인하십시오.

관련 문제