-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 要素を aselに渡す必要があります。

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 に答える