将ng视图嵌套在角度js中

use*_*941 44 javascript angularjs

我有角度的两个不同的应用程序.在集成到单个应用程序期间,我必须这样做

嵌套视图.

对于样本(index.html)是

<!doctype html>
<html lang="en" ng-app="myApp">
<head>
<meta charset="utf-8">
<title>My AngularJS App</title>
<link rel="stylesheet" href="css/app.css"/>
</head>
<body>
<ul class="menu">
<li><a href="#/view1">view1</a></li>
<li><a href="#/view2">view2</a></li>
</ul>

<div ng-view></div>

<div>Angular seed app: v<span app-version></span></div>

<script src="lib/angular/angular.js"></script>
<script src="js/app.js"></script>
<script src="js/services.js"></script>
<script src="js/controllers.js"></script>
<script src="js/filters.js"></script>
<script src="js/directives.js"></script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

我的应用视图之一是(view2.html)

<div class="ng-view"></div>
<p>This is the partial for view 1.</p>
{{ 'Current version is v%VERSION%.' | interpolate }}
Run Code Online (Sandbox Code Playgroud)

现在这个应用程序再次在其中有不同的视图.

我试过但页面没有加载.是否有可能嵌套ng-views?

如果不可能可以解释

提前致谢

Tia*_*dão 27

更新的答案:

UI路由器(现在位于此处:https://angular-ui.github.io/ui-router/site/#/api/ui.router)通常被认为是AngularJS中复杂路由的最佳解决方案.


原始答案:

到目前为止,在AngularJS中,嵌套视图本身是不可能的.在我的上一个应用程序中,我使用了从这里得到的解决方案:http://www.bennadel.com/blog/2420-Mapping-AngularJS-Routes-Onto-URL-Parameters-And-Client-Side-Events.htm

允许我有效地嵌套视图(并完全跳过有限的ng-view)

在这样做之后,出现了另一个(更简单,更好,我相信)解决方案:

http://angular-ui.github.com/(向下滚动到"路线检查")

看看这个!

  • 我自己开始使用该解决方案,但AngularUI ui-router(https://github.com/angular-ui/ui-router)路由是一个更好的解决方案. (5认同)

Gol*_*den 24

我建议你看一下AngularUI团队的ui-router项目.该项目包含一个基于状态的新路由器,它也可以对URL做出反应,但允许更好地处理应用程序状态.

这包括使用具有多个和/或嵌套视图.

我不久前有一个类似的问题,所以也许它的答案也会帮助你:如何在AngularJS中设置嵌套视图?

此外,您可以预期ui-router将在未来版本中集成到AngularJS中,因此无论如何这很可能是路由工作的方式.因此,如果您已经拥有今天的下一步,则无需坚持其他解决方法:-)

  • 当他们转向Angular 2.0(http://blog.angularjs.org/2014/03/angular-20.html)时,设计团队正在考虑如何解决本机路由器的弱点,包括在ui-中工作的内容.路由器(https://docs.google.com/document/d/1I3UC0RrgCh9CKrLxeE4sxwmNSBl3oSXQGt9g3KZnTJI). (3认同)