当您在this.ImagesView
中呼叫render
时,为什么PostCreateView
为空?
即使它已被初始化,它也始终为空。
PostCreateView = Backbone.View.extend({
el: $('#create-product'),
template: _.template(createTemplate),
ImagesView: null,
initialize: function() {
this.ImagesView = new ImageViewCollection().render().el;
},
render: function() {
this.$el.find('#images-collection').append(this.ImagesView)
}
});
答案 0 :(得分:-1)
this.ImagesView = new ImageViewCollection().render().el;
是不好的惯例。
你应该做的是:
PostCreateView = Backbone.View.extend({
el: $('#create-product'),
template: _.template(createTemplate),
ImagesView: null,
initialize: function() {
this.ImagesView = new ImageViewCollection()
},
render: function() {
this.$el.find('#images-collection').append(this.ImagesView.render().el)
}
});
el
的 ImageViewCollection
可能为空,因为您未在this
方法中返回render
。确保它执行此操作:
render: function(){
// image view render logic
return this
}