如何使用 $transitions?

Posted

技术标签:

【中文标题】如何使用 $transitions?【英文标题】:How to use $transitions? 【发布时间】:2017-09-30 12:20:52 【问题描述】:

目前,我正在使用:

“angular-ui-router”:“^0.4.2” “角度”:“^1.6.3” “webpack”:“^2.4.1”

我知道我当前的实现可能是deprecated,只是在寻找新方法的实现(示例或文档)。非常感谢任何帮助,在此先感谢!

当前实现:

'use strict';

module.exports = angular
  .module('common', [
    'ui.router',
    'angular-loading-bar',
    require('./header').name,
    require('./sideBar').name,
    require('./footer').name
  ])
  .run(function($transitions, cfpLoadingBar) 
    $transitions.onStart(, cfpLoadingBar.start);
    $transitions.onSuccess(, cfpLoadingBar.complete);
  );

当前错误:

未捕获的错误:[$injector:unpr] 未知提供者:$transitionsProvider

【问题讨论】:

始终使用$inject 或数组符号手动指定注入。 @AluanHaddad,希望就这么简单。这不是依赖注入。 只是提到它以防你不知道。 【参考方案1】:

在新版本 (>=1.0.0) 中,不推荐使用 $state 更改事件,现在 你必须改用$transitions...

$transitions 用于新版本 (>= 1.0.0) (PLUNKER DEMO)

MyCtrl.$inject = ['$transitions'];

function MyCtrl($transitions) 
    $transitions.onSuccess(, function($transition)
        console.log($transition.$from());
        console.log($transition.$to());
        console.log($transition.params());
    );

按调用排序的可用事件:

$transitions.onStart(, function($transition)...);

$transitions.onExit(exiting: "stateName", function($transition)...);

$transitions.onRetain(, function($transition)...);

$transitions.onEnter(entering: "stateName", function($transition)...);

$transitions.onFinish(, function($transition)...);

$transitions.onSuccess(, function($transition)...);

详细查看每个事件方法:$transition service docs 还有一些示例:Migrations examples from 0.4.2 to 1.0.0 in official docs


旧版本的 $state 更改事件 ( (PLUNKER DEMO):

MyCtrl.$inject = ['$scope'];

function MyCtrl($scope) 
    $scope.$on('$stateChangeStart', 
        function(event, toState, toParams, fromState, fromParams, options) ...);

    $scope.$on('$stateChangeSuccess', 
        function(event, toState, toParams, fromState, fromParams, options)...);

查看angular-ui-router docs 了解更多 $state 更改事件

【讨论】:

以上是关于如何使用 $transitions?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 React-Transition-Group 显示和隐藏带有动画的模态/对话框?

如何使用 Flip Transition 从 UIView 转到带有 NavigationController 的 TableViewController?

如何在颤动中使用 page_transition 在一次后按中返回多个页面

如何使用预先存在的动画为视图设置动画?

如何解释 D3 附加到 DOM 元素的 __transition__ 属性作为过渡的一部分?

如何销毁由 terraform transit-gateway 模块创建的附加 tgw 路由表