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'
}
}
});
}]);