Angularjs 得到一个;转换拒绝(“使用$state.go(';stateName';,null,{';reload';:true})后出现错误”);

Angularjs 得到一个;转换拒绝(“使用$state.go(';stateName';,null,{';reload';:true})后出现错误”);,angularjs,angular-ui-router,Angularjs,Angular Ui Router,我正在尝试使用重新加载控制器 $state.go('movies', null, {'reload':true}); 但是在使用这个之后,我得到了这个错误 转换拒绝($id:1类型:2,消息:转换已被另一个转换取代,详细信息:转换#63('home'{}->'movies'{})) 我不知道为什么会发生这种情况。尽管功能运行良好 代码: $scope.filterMovies=函数(类型){ var filteredMovies=[]; MoviesService.msGetData().th

我正在尝试使用重新加载控制器

$state.go('movies', null, {'reload':true});
但是在使用这个之后,我得到了这个错误

转换拒绝($id:1类型:2,消息:转换已被另一个转换取代,详细信息:转换#63('home'{}->'movies'{}))

我不知道为什么会发生这种情况。尽管功能运行良好

代码:

$scope.filterMovies=函数(类型){
var filteredMovies=[];
MoviesService.msGetData().then(函数(dataparam){
$scope.movielist=dataparam;
对于(变量idx=0;idx-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

您可以使用:

$state.reload();


发生此错误的原因是您正在现有转换中创建新转换。如错误所述,到
主页的转换将被您使用
$state.go('movies'[,…]);
创建的到
电影的转换所取代

要停止错误发生,请在
$timeout
内放置
$state.go('movies')

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

在我的例子中,routes文件对空权限数组感到愤怒:

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'
                }
            }
        });
}]);
import*作为“angular”的角度;
导入“@uirouter/angularjs”;
从'@uirouter/angularjs'导入{StateProvider,UrlRouterProvider};
从'@appname/app.Permissions'导入{Permissions};
angular.module('app').config([
“$stateProvider”,
“$urlRouterProvider”,
“权限”,
函数($stateProvider:stateProvider,$urlRouterProvider:urlRouterProvider,权限:权限){
$urlRouterProvider.when('/batch','/batch/abc');
$stateProvider
.状态('批次'{
父项:'根',
url:“/batch”,
模板:“”,
数据:{
权限:[权限.NavItemBatch],
菜单:{
名称:'navigation.batch',
图标:“文件上传”,
显示子菜单:真
}
}
}).state('batch.abc'{
url:“/abc”,
模板:“”,
数据:{

权限:[],//前面我已经尝试了你的代码,但它不起作用。你找到解决方案了吗?
$timeout(function() {
  $state.go('movies', null, {'reload':true});
});
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'
                }
            }
        });
}]);