AngularJSとBootstrapではまったお話
Bootstrapは前にも使ってたので、Angularでも同じように使おうとしてハマったのでメモ
今回ハマったのはBootstrapのdata-spyの扱いについて
早速サンプル
<body> <nav-bar></nav-bar> <div class="container"> <div class="row"> <div class="col-md-3"> <side-bar></side-bar> </div> <div class="col-md-9" ng-view=""></div> </div> </div> </body>
って感じで3paneな構成を用意してdirectiveでサイドバーを表示している
多分、ng-includeでサイドバーを出しても同じだと思うけど。
サイドバーのテンプレートでは
<div data-spy="affix"> … </div>
表示されるサイドバーのhtmlでdata-spyを登録してあげたんだけど、なぜだかdata-spyが効いてこない。。。
楽せずBootstrapのコードを確認する事にすると(ホントは楽しようとググったけど、、)
簡単に見つかりましたよ原因が
$(window).on('load', function () {
$('[data-spy="affix"]').each(function () {
…
})
})
テンプレートページ読み込み前にdata-spyの登録は打ち切られました:p
scrollspyも同じなので、data-spyの記述はindex.htmlで行うしかない様です。