무엇이 잘못되었는지 알 수 없습니다. 모델 제목을 클릭하면 하나의 모델을 가져 오는 대신 컬렉션의 모든 모델을 한 번에 가져옵니다. 이 이벤트를 logView에서 logsView로 이동하면 제대로 작동하지만 모델에 액세스 할 수 없으므로 인덱스 나 다른 모델의 ID를 사용하여이 모델을 찾을 수 있지만 좋은 방법이라고 생각하지는 않습니다.백본 클릭 이벤트는 모델이 아닌 모든 컬렉션에 대한 이벤트를 발생시킵니다.
var Log = Backbone.Model.extend({});
window.LogsList = Backbone.Collection.extend({
model:Log,
url:function (tag) {
this.url = '/logs/' + tag;
return this;
}
});
window.colList = new LogsList();
window.logView = Backbone.View.extend({
el:$('.accordion'),
template:_.template($('#log').html()),
initialize:function() {
this.model.bind('add', this.render, this);
},
events:{
"click .accordion-toggle" :"getLogBody"
},
render:function() {
return this.template(this.model.toJSON());
},
getLogBody:function() {
this.model.fetch();
}
});
window.LogsView = Backbone.View.extend({
el:$("#content"),
initialize:function (options) {
colList.bind('reset', this.addAll, this);
colList.url(options.data).fetch();
},
addOne:function (model) {
var view = new logView({model:model});
$("#accordion").append(view.render());
},
addAll:function() {
colList.each(this.addOne);
}
});
window.listView = new LogsView({data:"Visa_Cl"});
감사합니다. 나는 그걸로 혼란스러워했다고 생각합니다. – nateless
고마워요! 우수한 자원! –
고마워요. 내가 필요한 것. –