我正在使用一个带有导航和 ng-view 的母版页,部分页面在 ng-view 下成功加载并带有 master page 的导航,但我需要加载一些孤立的页面,例如 login.html 页面,而不是在 ng-view 和路由期间没有母版页内容。
我是 Angular 的新手,不知道该怎么做,每次在 ng-view 下加载登录页面。
请建议我任何方法来做到这一点。
先谢谢了。
我正在使用一个带有导航和 ng-view 的母版页,部分页面在 ng-view 下成功加载并带有 master page 的导航,但我需要加载一些孤立的页面,例如 login.html 页面,而不是在 ng-view 和路由期间没有母版页内容。
我是 Angular 的新手,不知道该怎么做,每次在 ng-view 下加载登录页面。
请建议我任何方法来做到这一点。
先谢谢了。
Angular 的一大优点是它非常灵活。最终这将取决于您的应用程序以及您的工作方式。我不确定您要完成什么,但是,这听起来像是 Dan 提到的ngInclude指令的工作。
您提到了一个不包括导航和其他主页内容的 login.html。使用模态可能是一个可行的替代界面决策。
如果您已经构建了所有内容,并且只想隐藏部分 DOM 并完成它,那么nghide或ngShow 可能是最快的解决方案。
如果您的 index.html 上有很多东西,您可能希望将这些东西分成部分而不是直接连接到您的路线的部分,并用于ng-include="'path/to/partial.html'"
包含它们。(“''”是有意的,因为它喜欢一个字符串。)阅读文档并尝试使用plunkr。你可以用 ngInclude 做很多很酷的事情,特别是如果你注意它的上下文。
如果将 ngInclude 指令与 ng-switch-when 结合使用,则可以组合如下内容:
<div ng-switch="routeAction">
<div ng-switch-when="extpage" ng-include="'extraneous.content.html'"></div>
<div ng-switch-when="login" ng-include="'login.partial.html'"></div>
<div ng-switch-default ng-include="'default.tpl.html'"></div>
</div>
其中 routeAction 与您的控制器相关联,该控制器与您的 $route 或 $location.. 相关联,具体取决于您的设置方式。
ng-include 是你的朋友。见文档
这是一种简单的方法,但是您应该去 doc 并查看关于可以在加载时执行的操作以及是否要自动滚动或执行某种动画的额外选项。
<div ng-include="'somefile.html'">
</div>
一个额外的注意事项是 ng-include 被赋予了一个表达式,所以如果你有一个静态引用,你需要额外的引号。