-1

我有扩展 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')               
});
4

1 回答 1

0

首先你应该传递 jQuery 元素 as 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')               
});

然后这将在整个对象中作为 jQuery 对象通过this.$el并且视图不应该只知道它的容器只是它所在的元素。因此,如果您希望这是主视图,请将您的选择器更改为$('#content .main')或只是$('#main')

于 2013-02-28T21:32:59.010 回答