4

ビューが DOM に挿入されたらすぐに、レイアウト スクリプトを実行する必要があります。そう...

$(".widgets").append(widgets.render().el)
$(".widgets .dashboard").isotope # <-- This needs to be called whenever new widgets are inserted

問題は、新しいウィジェットをいくつかの異なるビューに挿入し、このスクリプトをいくつかの異なる場所で再呼び出しする必要があることです。これは DRY ではありません。isotopeView クラスでをどのように定義できるのか疑問に思っています。

「.widgets」への追加を監視するイベント リスナーを定義し、スクリプトを実行するのは良い考えでしょうか? DOM に追加されたときにスマートなビューを構築する組み込みの方法はありますか?

(さらに言えば、View が DOM から削除されたときのコールバックを定義することも役に立ちます。)

4

2 に答える 2

0

renderビューが編集されるたびに同位体を呼び出すのはどうですか? render()ウィジェットが注入された後にのみ呼び出すように注意する必要がありますが、これで問題は解決するはずです。

 //in Backbone.view.extend({
   initialize: function() {
     // fix context for `this`
     _.bindAll(this);
   },
   render: function() {
     // .. do rendering..
     this.isotope();
     return this;
   }
 // }) // end .extend
于 2012-03-06T00:26:47.140 に答える
0

使用する:

var self = this;    
this.$el.on('DOMNodeInserted', function(evt){   
self.isotope();
$(evt.target ).stopPropagation();
})
于 2013-02-06T02:10:11.023 に答える