2014-10-10 3 views
0

Это моя первая попытка сделать одностраничное приложение с HTML5. Я использую jquery, нокаут и 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() в декларации. Таким образом, вы также можете удалить аргумент и вызвать this.personList([{"name":"Josh"}, {"name":"Barry"}, {"name":"Mike"}]) на своем основном маршруте Сэмми и заполнить список другими значениями на другом маршруте.

Другая ошибка заключается в том, что вы использовали привязку, которая здесь не нужна. Проверьте documentation about it.

Смежные вопросы