バインディングをに移動するのinitialize
が最善ですが、そうしない正当な理由があると仮定すると、フラグを設定することができます:
initialize: function() {
var _this = this;
this._finish_initializing = _.once(function($options) {
_this.collection.on('reset', function() {
_this.render($options);
});
});
//...
},
render: function($options) {
this._finish_initializing($options);
//...
}
フラグを実装するにはさまざまな方法がありますが_.once
、フラグのチェックをうまく隠しています。render
自分自身をバインド解除するリスナーを使用して、イベントをトリガーすることもできます。
initialize: function() {
var finish_initializing = function($options) {
/* your binding goes here ... */
this.off('render', finish_initializing);
};
this.on('render', finish_initializing, this);
},
render: function($options) {
this.trigger('render', $options);
//...
}
それは本当に同じ論理で、別の服を着ているだけです。また、明示的なフラグとif
inを使用するか、 inrender
に関数を割り当てて、その関数を使用することもできます。this._finish
initialize
delete this._finish