Tôi đang cố gắng tìm hiểu backbone.js thông qua ví dụ sau đây. Sau đó, tôi bị kẹt tại điểmBackbone.js kết nối Xem với Mô hình
ItemView = Backbone.View.extend
lý do bạn có thể sử dụng this.model.get? Tôi nghĩ rằng đây là đề cập đến trường hợp của ItemView sẽ được tạo ra. Vậy tại sao ItemView lại có một thuộc tính mô hình ở tất cả? !!
(function($){
var Item = Backbone.Model.extend({
defaults: {
part1: 'hello',
part2: 'world'
}
});
var List = Backbone.Collection.extend({
model: Item
});
var ItemView = Backbone.View.extend({
tagName: 'li',
initialize: function(){
_.bindAll(this, 'render');
},
render: function(){
$(this.el).html('<span>'+this.model.get('part1')+' '+this.model.get('part2')+'</span>');
return this;
}
});
var ListView = Backbone.View.extend({
el: $('body'),
events: {
'click button#add': 'addItem'
},
initialize: function(){
_.bindAll(this, 'render', 'addItem', 'appendItem');
this.collection = new List();
this.collection.bind('add', this.appendItem);
this.counter = 0;
this.render();
},
render: function(){
$(this.el).append("<button id='add'>Add list item</button>");
$(this.el).append("<ul></ul>");
_(this.collection.models).each(function(item){
appendItem(item);
}, this);
},
addItem: function(){
this.counter++;
var item = new Item();
item.set({
part2: item.get('part2') + this.counter
});
this.collection.add(item);
},
appendItem: function(item){
var itemView = new ItemView({
model: item
});
$('ul', this.el).append(itemView.render().el);
}
});
var listView = new ListView();
})(jQuery);
Cảm ơn bạn. Điều đó cho tôi sự rõ ràng –