最近、Emberjsとtwitterブートストラップに基づいてページを作成しました。このページは、すばらしいemberjsバインディングエンジンを使用して動的に構築されます。私は現在、境界ビューがhtmlでリストをレンダリングしているコントローラーを持っています。
{{#each App.myArrayController}}
{{#view App.MyItemListView contentBinding="this"}}
<span>{{view.somethingToPrint}}</span>
{{/view}}
{{/each}}
{{view.somethingToPrint}}
このようにして、ご想像のとおり、スパンタグ内の配列コンテンツのN倍を印刷しています。
今、私はjQueryUIスライダーのリストをレンダリングすることを検討しています。私の質問は、それらが動的に生成されることを$(".slider").slider();
考えると、それを「ライブ」にするためにinitメソッドをいつ呼び出す必要があるかということです。実際、これを達成するための通常の方法は何ですか?
私は次のいずれかを使用することを考えました:
- jQueryの「livequery」プラグインを使用して、追加されたアイテムを透過的に初期化します。欠点は、速度が遅く、すべてのブラウザで機能するとは限らないことです。
- スライダーを作成している各行にスクリプトタグ全体を埋め込み、スクリプトも追加されてコンテンツが初期化されるようにします。
- App.myArrayControllerにオブザーバーを追加し
$(".slider").slider();
ます。これにより、変更が発生した場合にが起動します。
しかし、それでも私はそれらを確信していません。私はTwitterのBootstrapを使用することに慣れており、ほとんどの場合、レンダリング後のスクリプト呼び出しをいじる必要はありません(これが「ブートストラップ」の目的です)。