首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >$transitions.onStart不触发角.run块内部

$transitions.onStart不触发角.run块内部
EN

Stack Overflow用户
提问于 2017-04-17 23:45:17
回答 1查看 749关注 0票数 0

我希望能够捕捉到以前的状态,但是,我似乎无法理解为什么$transitions.onStart函数不能正确地触发:

代码语言:javascript
复制
  // angular run block

  $transitions.onStart({ from: '*', to: '*' }, (trans) => {
    $rootScope.$previousState = trans.$from().name;
    console.log('HERE?', $rootScope.$previousState)
  });

console.log永远不会触发,而且每当我在$rootScope中引用controllers时,我都看不到在这个.run块中定义的$previousState属性。

代码语言:javascript
复制
   // sample directive

   restrict: 'A',
    link: (scope, elem) => {
      elem.bind('click', () => {
        console.log('>>>>', $rootScope.$previousState)
        $window.history.back();
      });
    }

更新(修复)但不确定原因:

因此,我将代码从$transitions.onStart({ from: '*', to, '*' })更新为:

代码语言:javascript
复制
  $transitions.onStart({}, (trans) => {
    $rootScope.$previousState = trans.$from().name;
  });

而且这个很管用。奇怪的是,以前的语法曾经起作用,然后突然停止工作,所以我做了这个修改,现在起作用了。有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-18 18:10:33

找到解决办法了!$transitions.onStart({ from: '*', to, '*' })语法意味着它只在一个级别上观察sate的变化,因此如果您想更进一步,可以使用** glob模式。

此外,$transitions.onStart(cb)语法监视所有状态变化。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43461332

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档