1
방금 backbone.js를 사용하여 스파를 만들기 시작했습니다. 나는 책 컬렉션을 모델 변경 내용을 듣게하려고 노력하고 있지만 아무 일도 일어나지 않습니다.Backbone.js 컬렉션이 모델 변경 이벤트를 듣지 않습니다.
var Book = Backbone.Model.extend({
idAttribute: 'id',
defaults: {
id: null,
title: '',
author: '',
completed: false
}
});
var BooksCollection = Backbone.Collection.extend({
model: Book,
url: 'books',
initialize: function() {
this.listenTo(this.model, 'change', this.debug);
},
debug: function() {
console.log('something happened !!!');
}
});
이 뷰는 다음과 같습니다 :이 모델과 모음입니다
var BookView = Backbone.View.extend({
template: _.template($('#viewBook').html()),
events: {
"click #save": "bookSave"
},
initialize: function() {
this.listenTo(this.model, 'change', this.render);
},
render: function() {
$(this.el).html(this.template(this.model.toJSON()));
return this;
},
bookSave: function() {
this.model.set({author: "nobody"});
}
});
난 저자가 변경 아무것도가 기록되지 않는 #save 버튼을 클릭
. 내가 어디가 잘못 됐니? 감사. 모델에서
저장 사용()는 서버에 요청을 보냅니다. 컬렉션 모델의 속성 값만 변경하려고합니다. 컬렉션에서 속성 변경 내용을 수신 할 수 없습니까? 동기화 이벤트 만들을 수 있습니까? –
보기와 모델이 동일한 모델을 참조하고 있습니까? 명시 적으로 새 모델을 작성하여 뷰에 전달할 수 있습니다. – Peter