2013-10-01 120 views
0

我有路由,看起来像这样:AngularJS是否需要路线段?

.when "/:locale", 
    templateUrl: "/views/index.html" 
... 
.otherwise redirectTo: "/en" 

的问题是,第一条路线也匹配/。有没有办法添加所需的路线段,以便/:locale只有匹配实际上是非空字符串?

我大概可以听$routeChangeStart并在那里实施otherwise条件,但如果我可以在一个地方完成所有操作,它会容易得多。

+0

看到这里回答:http://stackoverflow.com/questions/14216565/how-to-have-wildcards -in-angular-routes –

+0

谢谢,但它并没有真正回答我的问题。我不是在询问通配符,而是单个路由段不是可选的。我没有任何控制器,因为它只是渲染一个模板,并没有任何逻辑。 – szimek

+0

它看起来最近在1.2.0 RC2中被破坏了:https://github.com/angular/angular.js/commit/04cebcc133c8b433a3ac5f72ed19f3631778142b#commitcomment-3866914 – szimek

回答

0

看起来它在1.2.0 RC2中被破坏了this提交,并且已经有一个pull request来修复它,它将在1.2.0 RC3中着陆。

+0

这就是生活在当你生活在流血的边缘。 –

0

试试这个,对不起,我不明白你的需要,但我希望这将工作

.when "", 
    templateUrl: "/page.html" 
.when "/", 
    templateUrl: "/page.html" 
.when "/:locale", 
    templateUrl: "/views/index.html" 
... 
.otherwise redirectTo: "/"