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で行うしかない様です。