ng-viewにデータを取り込む2つのテンプレートがありますが、それらはドキュメントcssを継承していません。cssを機能させる方法はありますか?これをjquerymobileページで使用しており、リピートリストにjquerymobileuiを含める必要があります。
2 に答える
ng-view
HTML を現在の DOM に添付するだけです。ページに適用された CSS は正しく影響します。おそらく、jQuery Mobile UI は、HTML が追加されたときには起こらない JavaScript マジックを実行します。
たとえば、Listviews のドキュメントをざっと見ると、次のメソッドが表示されます。
refresh
- リストビューを更新JavaScript を介してリストビューを操作する場合 (新しい LI 要素を追加するなど)、refresh メソッドを呼び出してビジュアル スタイルを更新する必要があります。
$('.selector').listview('refresh');
「List basics & API」の下部にもセクションがあります。
リストの更新
リストビューにアイテムを追加する場合は、refresh() メソッドを呼び出してスタイルを更新し、追加されたネストされたリストを作成する必要があります。例えば:
$('#mylist').listview('refresh');
このメソッドは、リストに追加された新しいノード
refresh()
にのみ影響することに注意してください。これは、パフォーマンス上の理由から行われます。既に拡張されているリスト アイテムは、更新プロセスによって無視されます。つまり、既に拡張されたリスト アイテムのコンテンツまたは属性を変更しても、これらは反映されません。リスト アイテムを更新する場合は、refresh を呼び出す前に新しいマークアップに置き換えます。
ng-view には、ng-view コンテンツがリロードされたときに発行される$viewContentLoadedイベントがあります。コントローラーまたはディレクティブ スコープ (または rootScope) でそのイベントをリッスンし、@Brandon が言及しているように再適用/更新してみてください。
Angularおよびangular.jsの $viewContentLoaded で機能しない Jquery 呼び出しも参照してください。