2013-04-28 163 views
3

期间routeParams不可用,我试图找出AngularJS和路由。有人可以看看这http://jsfiddle.net/spoon16/p9BBr/

帮我理解为什么$routeParams.i未初始化过程中。在我的控制器中使用$routeParams有什么合适的方法?

回答

4

基本上$routeParams在路由服务已经改变路由之前是不可用的,这意味着你应该只将服务注入与特定路由相关的控制器(路由的controller属性)。

如果你在其他一些控制器需要知道当前的路线等,你应该听the various events路线服务广播,例如

$scope.$on('$routeChangeSuccess', function (ev, current, previous) { 
    // ... 
}); 

Updated fiddle

+0

有一点很难理解你的第一个段落。在jsfiddle中没有与路线相关的控制器值? – 2013-04-28 20:42:58

+0

通常你特定的控制器特定路由关联起来,并在控制器通常要提取的参数值,并使用他们的东西(也许有些Ajax调用的一部分)。我打算更新小提琴,但我能得到小提琴让我改变的URL。 – Martin 2013-04-28 20:49:11