[英]AngularJS: Include menu as partial in index.html
我的index.html
基本上是这样的:
<body>
<header ng-controller="navCtrl">
<!-- quite a bit of html for the menu -->
</header>
<div ng-view>
</div>
</body>
由于我不能在一个页面上使用多个ng-view
,所以我想知道将菜单( <header />
)移到部分菜单中的最佳方法是什么,这样我的index.html
保持整洁。
一种方法是使用ng-include :
<header ng-include src="'partials/topbar.htm'">
</header>
您可以将菜单标题设置为指令。 指令包括它们自己的模板,因此您可以封装功能,并且可以在其他页面上重用。
即类似: <header main-nav></header>
其中main-nav是您的指令,可以执行所需的任何操作。
您是否考虑过使用ui-router ? 它使您所说的变得非常简单,因为您可以拥有多个ui视图,并且可以将导航分为一个,而将应用分为另一个。 我极力推荐。
如果添加的菜单仅在应用程序中使用一次,则不要创建指令。 当您要避免重复代码时,应使用伪指令。 您可能会继续开发另一个应用程序,然后可能需要菜单。 但是,目前还没有任何消息告诉您该应用程序将使用相同的导航。 在ng-view中使用angularjs中的路由。 如果需要,可以在菜单部分中添加所需的任何角度,以突出显示菜单中的链接。 如果主页变大,请将菜单区域移至ng-include。
正确的方法:
ui-router
,将允许您使用多视图 ui-router
单独视图放置在顶部模块中 header
模块的单独控制器 templateProvider
单独templateUrl
来预测动态菜单(如果您具有用户角色限制等) 错误的做法:
ng-include
和ng-controller
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.