私はknockout.jsからのバックボーンに新しいことがあります。私はこの単純なこぶを乗り越えようとしています。私はボタンをクリックして、Chromeのコンソールを見てみるとbackbone.jsでフェッチした後にモデルデータを表示するには
[{"id": "1233","name": "Karen","grade": "C"},{"id": "1234","name": "Susan", "grade": "F"}]
が、私は以下を参照してください:
$(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を送信:私はこのコードを持っている
まずクリック:
[] - Corrected -just an empty array
セカンドクリック:
[
Object
grade: "C"
id: "1233"
name: "Karen"
__proto__: Object
,
Object
grade: "F"
id: "1234"
name: "Susan"
__proto__: Object
]
最初の質問はなぜ2回のクリックかかりますか? Second:テキストボックス、<li>
またはその他のUI要素にグレードを(コレクションとIDの両方として)割り当て/バインドするにはどうすればよいですか(Ajaxがポップインするときにはそれをよりよく観察できます)。
使用 'window.Student = Backbone.Model.extend({});'の代わりに元のラインのは、 '自体をこのようにオブジェクトBackbone.Model'割り当てるため。 [Backbone.ModelBinding](https://github.com/derickbailey/backbone.modelbinding)プラグインも参照してください。 – kubetz