从$ routeProvider访问控制器

时间:2015-10-16 22:14:01

标签: javascript angularjs routes

定义像

这样的Angular路线时
.when('text', {
  templateUrl: 'templates/articles/text.html',
  controller: 'MyCtrl'
})

并听取路线变化

$scope.$on('$routeChangeSuccess', function(next, current) { 
    // yadda yadda
});

是否可以在MyCtrl事件中访问与该路由更改相关联的$routeChangeSuccess控制器实例?

2 个答案:

答案 0 :(得分:1)

我不确定你为什么要这样做,因为一旦路线成功改变,控制器本身就会运行。但是,虽然它可能是多余的,但您可以通过将$routeChangeSuccess置于实际控制器中来访问控制器。

我猜你无论出于什么原因想要从另一个区域与你的控制器进行交互,我建议通过一个服务来完成它,将它注入你的控制器,以及你挂钩事件的区域。

答案 1 :(得分:0)

而不是$routeChangeSuccess使用$stateChangeSuccess

因为状态转换完成后会激活$stateChangeSuccess