在使用“$ state.go('stateName',null,{'reload':true})后获得”过渡拒绝(..“错误);”

时间:2017-07-16 10:31:58

标签: angularjs

我试图使用

重新加载我的控制器
$state.go('movies', null, {'reload':true});

但在使用此功能后,我收到此错误

过渡拒绝($ id:1类型:2,消息:转换已被其他过渡取代,详情:过渡#63('主页'{} - >'电影'{}))

我很无能为什么会这样。虽然功能正常。

代码:

$scope.filterMovies = function(genre){
    var filteredMovies = [];
    MoviesService.msGetData().then(function(dataparam){
        $scope.movielist = dataparam;
        for(var idx=0; idx<$scope.movielist.length; idx++){
            if($scope.movielist[idx].genres.indexOf(genre) > -1){
                filteredMovies.push($scope.movielist[idx]);
                MoviesService.msSetFilteredMovies(filteredMovies);
                //$state.go('movies');
                $state.go('movies', null, {'reload':true});
            }
        }
     });
 }

注意:我使用的是AngularJS v1.6.5和angular-ui-router v1.0.5

提前致谢。

3 个答案:

答案 0 :(得分:2)

您可以使用:

$state.reload();

$state.transitionTo($state.current, $stateParams, {
    reload: true,
    inherit: false,
    notify: true
});

答案 1 :(得分:0)

发生此错误是因为您要在现有过渡中创建一个新过渡。如错误所述,到home的过渡已由您用movies创建的向$state.go('movies'[, ...]);的过渡所取代。

要停止在$state.go('movies')中出现错误的地方$timeout。例如。

$timeout(function() {
  $state.go('movies', null, {'reload':true});
});

答案 2 :(得分:0)

在我的情况下,路由文件对权限数组为空感到愤怒:

import * as angular from 'angular';
import '@uirouter/angularjs';
import { StateProvider, UrlRouterProvider } from '@uirouter/angularjs';
import { Permissions } from '@appname/app.permissions';

angular.module('app').config([
    '$stateProvider',
    '$urlRouterProvider',
    'PERMISSIONS',
    function ($stateProvider: StateProvider, $urlRouterProvider: UrlRouterProvider, PERMISSIONS: Permissions) {
    $urlRouterProvider.when('/batch', '/batch/abc');

    $stateProvider
        .state('batch', {
            parent: 'root',
            url: '/batch',
            template: '<batch></batch>',
            data: {
                permissions: [PERMISSIONS.NavItemBatch],
                menu: {
                    name: 'navigation.batch',
                    icon: 'file_upload',
                    showSubmenu: true
                }
            }
        }).state('batch.abc', {
            url: '/abc',
            template: '<abc></abc>',
            data: {
                permissions: [],// <-- angry - remove entirely or add valid permission
                menu: {
                    name: 'ABC'
                }
            }
        });
}]);