フレームワークのない世界から Backbone.js に移行して、jQuery オブジェクトへの参照を (効率化のために) 常に格納することで、jQuery オブジェクトを「キャッシュ」するという慣行を取り入れました。
var myCachedEl = $('#element');
myCachedEl.on('click', function() {
myCachedEl.html('That tickles.');
});
Backbone では、これが jQuery オブジェクトをキャッシュする方法です。
var RandomView = Backbone.View.extend({
intitialize: function() {
this.$lastRoll = this.$el.find('#last-roll');
this.listenTo(this.model, 'change', this.render);
},
render: function() {
this.$lastRoll.html(this.model.get('lastRoll'));
},
events: {
'click #last-roll': function() {
this.model.roll();
}
}
});
var randomView = new RandomView({
el: '#random-view',
model: random
});
私の現在の設定を考えると、次のようなことをしたいと思います...
events: {
'click this.$lastRoll': function() {
// ...
}
}
...私のイベントでは、クリック イベントをキャッシュされた要素にバインドできました。ただし、上記の構文は機能しません。上記と同様の構文を使用できるように、サブ要素を「公式に」定義する方法があるのではないかと思います。
質問:現在のパターンの代わりに、ビューのサブ要素をキャッシュするための「より良い」、「よりクリーンな」、またはより「バックボーン セマンティック」なパターンはありますか?