0

私は Ember.js (1.0. RC) を使用しており、Isotope.js の機能を「コンテナー」にあるビューの一部に適用したいと考えています。

したがって、私のルートは基本的に、サーバーから必要なデータを含むモデルをロードし、コントローラーのコンテンツをセットアップして、それをモデルのデータにバインドします。これは正常に機能します。

次に、ロードされたすべてのアイテムを次のように反復処理する IndexRoute のテンプレートを宣言しました。

{{each item in this itemViewClass="App.ItemView"}}

項目は isotope.js でフィルタリングする必要がある画像です。ItemView は、当面は単純なテンプレートのみを参照します。

実行チェーンは次のとおりです。ルート -> モデル データの取得 -> コントローラーの設定 -> IndexView の作成 -> DIV コンテナー内のすべての ItemView を積み上げます。

ここで、すべての ItemView がロードされ、レンダリングが最終的に終了して isotope.js のフィルタリング機能を適用するかどうかを確認する必要がありますが、その方法がわかりません。

didInsertElementIndexView イベントの は、レンダリングされるとすぐに、ItemViews が DOM に追加される前に発生します。

モデルを介してデータをフェッチせずに変数にハードコーディングした場合ContainerViewと連携して機能する をセットアップしようとしました。Ember.run.scheduleOnce("afterRender"...)content

またCollectionView、この演習には何の好意もありませんでした。

その悲惨さを解決する方法はありますか?本当にありがたいです。ありがとう。

4

1 に答える 1

1

isotope.jsがどのように機能するのか正確にはわかりません..単なるjqueryプラグインであることを考えると、 isotope がContainerViewまたはCollectionView.

didInsertElement: function() {
   Ember.run.next(this, function(){
     this.$().isotope({}) // or watever code u want to write
   });
}

これにより、レンダリングが完全に完了すると、ember.run 内のコードが確実に実行されます。

于 2013-03-17T18:01:58.093 に答える