バックボーンを使用してアイテムのリストを表示し、サーバー上の JSON によって入力されます。
//Models
var Note = Backbone.Model.extend();
var NoteList = Backbone.Collection.extend({
model: Note,
url: "http://www.myserver.com/notes/notes.json"
});
var Notes = new NoteList;
//Views
var NoteView = Backbone.View.extend({
tagName: "li",
template: _.template($('#noteTemplate').html()),
initialize: function() {
this.listenTo(this.model, 'change', this.render);
},
render: function() {
this.$el.html(this.template(this.model.toJSON()));
return this;
}
});
var AppView = Backbone.View.extend({
el: $("#specificationNotes"),
noteTemplate: _.template($('#noteTemplate').html()),
initialize: function() {
this.listenTo(Notes, 'reset', this.addAll);
this.listenTo(Notes, 'all', this.render);
Notes.fetch({reset:true});
},
addOne: function(note) {
var view = new NoteView({model: note});
this.$("#notesList").append(view.render().el);
},
addAll: function() {
Notes.each(this.addOne, this);
}
});
var App = new AppView;
最初のフェッチでコンテンツが正しく取得され、リストが表示されます。jQueryダイアログを使用して、単にRESTful APIに投稿する「メモを追加」します.ajax投稿が成功した後、私は呼び出します
Notes.fetch();
モデルは更新されますが、ビューは変更されません。