我正在尝试将模板动态包含到我的 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>
示例网址
example.com/<app_name>/index.html#/<module_name>[/method_name]
$scope.moduleName
我不知道当路线改变时如何更新。我的麻烦有两个:
标头的控制器是Main,而不是与视图关联的控制器,所以我不能?
$scope.moduleName
从视图的控制器更新(因为Main和视图的控制器是同级的)。在Main中,我尝试设置 a
$scope.$on('$routeChangeSuccess',…)
,但显然它没有通知路线更改。
我曾考虑为路由更改设置一个 $rootScope.$on 监听器(如SO#15355346中所述)并向下广播给孩子,然后他们重新发送他们的路由,然后向下广播,以便它可以用于主要。但这似乎令人发指。
而且我真的更愿意将标题保留在 ng-view 之外。
编辑我注意到$route.current.scope
有一个名为 with 的对象module_name
(可能是因为与路由的 module_name 关联的控制器的名称相同)。我想知道我是否能够以某种方式使用该对象的名称……</p>