除了ng-view页面加载

时间:2013-10-23 20:05:00

标签: javascript angularjs

我正在使用包含导航和ng-view的母版页,在ng-view下成功加载部分页面以及母版页导航,但我需要加载一些像login.html页面这样的隔离页面,但不是在ng下 - 在路线期间查看和没有母版页内容。

我是角度新手,不知道如何做到这一点,每次在ng-view下加载登录页面。

请建议我以任何方式这样做。

先谢谢。

2 个答案:

答案 0 :(得分:0)

ng-include是你的朋友。 see doc

这里有一个简单的方法,但你应该去doc,看看有什么额外的选项可以做onload,如果你想自动滚动或做某种动画。

<div ng-include="'somefile.html'">
</div>

另外一个注意事项是ng-include被赋予一个表达式,所以如果你有一个静态引用,你需要额外的引号。

答案 1 :(得分:0)

Angular的一大优点是它非常灵活。最终,这将取决于您的应用程序和您的工作方式。我不确定你要完成什么,但是,ngInclude directive Dan mentioned modal的工作听起来像是nghide

您提到了一个不包含导航和其他主页内容的login.html。使用ngShow可能是一个可行的替代接口决策。

如果您已经构建了所有内容并且只想隐藏部分DOM并完成它,那么the plunkr或{{3}}可能是最快的解决方案。

如果您的index.html上有很多内容,您可能希望将这些内容分成除了直接连接到您的路由之外的部分内容,并使用ng-include="'path/to/partial.html'"来包含它们。 (“'''是故意的,因为它喜欢字符串。)阅读文档并试用{{3}}。你可以用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绑定...取决于你设置的方式。