テンプレートを index.html に動的に含めようとしています。index.html の一般的な構造は次のとおりです。
<body>
<header ng-controller="Main">
<section>
<!-- global stuff -->
</section>
<section ng-include="moduleName + '/views/menubar.html'">
<!-- module-based stuff -->
</section>
</header>
<div id="view" ng-view></div>
</body>
サンプル URL
example.com/<app_name>/index.html#/<module_name>[/method_name]
$scope.moduleName
ルートが変更されたときに更新する方法がわかりません。私の問題は 2 つあります。
ヘッダーのコントローラーはMainであり、ビューに関連付けられたコントローラーではないので、できませんか? ビューのコントローラーから更新
$scope.moduleName
します ( Mainとビューのコントローラーは兄弟であるため)。Mainに を設定してみましたが
$scope.$on('$routeChangeSuccess',…)
、どうやら経路変更が通知されないようです。
私は $rootScope.$on リスナーを設定して ( SO#15355346で説明されているように) ルートを変更して子にブロードキャストすることを考えました。子はルートを元に戻します。メイン。しかし、それは凶悪なようです。
そして、ヘッダーをng-viewの外に置いておきたいと思います。
編集$route.current.scope
with という名前のオブジェクトがあることに気付きましたmodule_name
(おそらく、ルートの module_name に関連付けられているコントローラーの名前が同じであるため)。どうにかしてそのオブジェクトの名前を使用できるのではないかと考えています…</p>