【问题标题】:Is $routeChangeSuccess guarantied to be fired inside a newly instantiated controller?$routeChangeSuccess 是否保证在新实例化的控制器中被触发?
【发布时间】:2014-03-03 15:35:34
【问题描述】:

假设我们有一个 /example 路由和关联的 ExampleCtrl

.when('/example', {
    templateUrl : 'example.html',
    controller: 'ExampleCtrl'
})

&

ExampleCtrl = function(){
    $scope.$on("$routeChangeSuccess", function(){
       // is this guarantied to be called inside current scope?
    }
}

大多数时候 $routeChangeSuccess 事件会在新创建的范围内触发,但我可以依赖这个假设吗?

【问题讨论】:

    标签: angularjs controller angularjs-scope angularjs-controller angular-routing


    【解决方案1】:

    欢迎来到 StackOverflow ;)

    $scope.$on...
    

    那个位代表监听事件 $broadcast。只要您不使用事件并故意停止传播,您就可以确定该事件确实会在新范围内触发

    希望能回答你的问题

    【讨论】:

    • 谢谢 =D 好像我正在使用的 angularjs 版本有一个错误,或者我的代码深处的某个地方不太顺利。我正在使用 $routeChangeSuccess 调用从服务器中提取 json 数据的函数,而不仅仅是在控制器内部调用它。但它无法执行~1/30 次,显然是以随机方式执行的,所以我只是认为我对 $routeChangeSuccess 的理解可能是错误的。感谢您的快速回复!
    • 也许您可以将服务/工厂用于您的那部分逻辑,我认为这可能对您有好处
    • 嗯,不需要,我直接调用函数:P
    猜你喜欢
    • 1970-01-01
    • 2017-04-27
    • 1970-01-01
    • 1970-01-01
    • 2014-08-11
    • 1970-01-01
    • 2013-01-19
    • 2016-08-03
    • 1970-01-01
    相关资源
    最近更新 更多