UI-Router v1.0 + $转换Angular 1.x中的服务

Bri*_*son 7 angularjs angular-ui-router

我正在寻找一些与UI-Router的$rootScope.$on('$stateChange...'功能前1.0版本相当的东西.我知道新的$ transitions服务,但似乎无法弄清楚如何让它以相同的方式工作.

我在下面创建了一个可重复性最小的plunker,试图突出我目前使用该服务的方式,并希望深入了解在v1.0 + UI-Router中实现此目的的新方法

https://plnkr.co/edit/ddabHc9oXEbqMoNZHYs2?p=preview

这种过渡不仅似乎不会在每次过渡时发生,而且在儿童过渡时根本不会发生.这是预期的行为吗?它确实似乎在兄弟状态下发射,但即使仍然只发射一次(可能是因为涉及缓存?).我认为即使'状态'是通过缓存加载的,'过渡'仍然会发生.

有兴趣在这里了解所需的功能.谢谢!

Chr*_*s T 9

1)你的掠夺者被打破了,这个错误让结果变得混乱.您需要添加一个跟踪ng-repeat来停止控制台中的错误:

> angular.js:13920错误:[ngRepeat:dupes]不允许在转发器中重复.使用'track by'表达式指定唯一键.转发器:转换中的转换,重复键:字符串:已开始加载主要,重复值:已开始加载主要

2)glob *只匹配一个状态级别.使用**匹配"贪婪"(然后将匹配的子状态为好){ to: '**' }

3)所有标准键都是可选的.如果省略任何内容,则它们隐式匹配任何内容.而不是{ to: '**' },我更喜欢一个空的标准对象{}

4)为了更好地理解转换,使用UI-Router Visualizer并为转换启用ui-router跟踪服务(检查控制台). app.run($trace => $trace.enable('TRANSITION'))

以下是对这些更改的更新内容:https://plnkr.co/edit/AO49n8biBBEnfnsxPbns?p = preview

阅读描述每个生命周期钩子的Transition Service文档:

  • onBefore
  • 在onStart
  • onExit(状态挂钩)
  • onRetain(州钩)
  • onEnter(状态挂钩)
  • onFinish
  • 的onSuccess
  • onerror的

阅读钩子标准对象,了解有关如何定位特定过渡的更多详细信息.