2012-11-29 170 views
3

我有一个单页的网络应用程序,其模板/网页看起来像:你可以在angularjs中嵌套ngView吗?

[templateLeft | templateRight]

我想设置路由,以便某些用户没有登录时,他们去不同的页面(登录页面),当他们登录时,路由只会影响templateRight(如templateLeft isn'重新加载)。

看起来最好的方法是使用路由和ng-view,但是由于一个路由影响整个页面,一个路由只影响templateRight,我不知道如何去创建控制器/路由正确,因为它看起来像你不能嵌套ng视图的。

我错了吗?什么是实现这一目标的好方法?

+0

您是否找到了解决方案? –

回答

2

有没有标准的方式嵌套ngView与当前版本的AngularJS。这是相当常见的请求,并且有一些为此打开的pull请求,但没有签入。

在邮件列表和SO上都有关于这个主题的几个讨论,人们试图采用不同的策略,但又一次 - 没有干净/推荐嵌套ngView的方法。

最近AngularJS团队认识到有多个路由器的空间,并将核心路由服务(和ngView指令)重构为单独的模块。最有希望的,社区驱动的努力,以取代“官方”路由器似乎是角UI路由器:https://github.com/angular-ui/router

+0

似乎@AngryTux有更好的(更新的)答案。正是有关这个话题的工作。 – Michael

+0

@迈克尔右,UI路由器似乎非常有前途。不过,这是一个扩展,而不是AngularJS核心的一部分。而且还是相当早的努力。但是,是的,我们希望它会增长。更新了答案。 –

3

其实,有一个Alpha开发正在进行可在这里:https://github.com/angular-ui/ui-router

主目标 将角度“路由”的概念演变为用于管理粗略应用程序状态的“状态”的更多 一般概念。

主要功能:状态管理器$ stateProvider和$ state,保持状态 逻辑与路由逻辑分开。嵌套状态(父母/子女 关系)。可以通过命名视图设置多个视图。 ui-view 指令。 URL路由向后兼容Angular v1路由器 各种其他掘金