我有扩展Backbone.View类的基类。 我通过构造函数传递一个Jquery DOM元素,这个对象是垃圾收集的候选对象吗?
var MainView = BaseView.extend({
initialize: function(o) {
this.container = o.myJqueryDomElement;
this.render();
},
render: function() {
this.container.append(this.$el);
},
dispose: function() {
this.remove();
}
});
在我的代码的某些方面我这样做:
var mainView = new MainView({
myJqueryDomElement = $('#content')
});
答案 0 :(得分:0)
首先,你应该将jQuery元素作为el
传递,所以
var MainView = BaseView.extend({
initialize: function(o) {
this.render();
},
render: function() {
this.html(someTemplate)
},
dispose: function() {
this.remove();
}
});
var mainView = new MainView({
el: $('#content')
});
然后这将通过this.$el
作为jQuery对象在整个对象中可用,并且视图不应该知道它的容器只是它所在的元素。所以如果你想要这个是主视图改变你的选择器为$('#content .main')
或$('#main')