Я как бы новичок в позвоночнике, идущем от knockout.js, и я пытаюсь преодолеть этот простой горб. У меня есть этот код:Как просмотреть данные модели после извлечения в backbone.js
$(function(){
window.Student = Backbone.Model;
window.Students = Backbone.Collection.extend({
model: Student,
url: 'test.php'
});
window.students = new Students();
window.AppView = Backbone.View.extend({
el: $('#container'),
initialize: function() {
Students.bind('reset', this.render);
},
render: function(){
console.log(Students.toJSON());
}
});
window.appview = new AppView();
$('#test').click(function(){
//var students = new Students();
students.fetch();
var q = students.toJSON();
console.log(q);
/*
students.create({
name: 'John',
grade: 'A'
}); */
})
});
Мой сервер посылает следующий JSON:
[{"id": "1233","name": "Karen","grade": "C"},{"id": "1234","name": "Susan", "grade": "F"}]
Когда я нажимаю на кнопку и посмотреть на консоли в Chrome, я вижу:
Первый клик:
[] - Corrected -just an empty array
Второй Click:
[
Object
grade: "C"
id: "1233"
name: "Karen"
__proto__: Object
,
Object
grade: "F"
id: "1234"
name: "Susan"
__proto__: Object
]
Первый вопрос: почему требуется два клика? Во-вторых: как я могу просто назначить/связать класс (как в виде коллекции, так и по id) с текстовым полем <li>
или другим элементом пользовательского интерфейса (лучше всего сделать его наблюдаемым, когда появится ajax).
Используйте 'window.Student = Backbone.Model.extend ({});' вместо исходной строки, потому что вы присваивающая 'Backbone.Model' сам объект таким образом. Также см. Плагин [Backbone.ModelBinding] (https://github.com/derickbailey/backbone.modelbinding). – kubetz