0

タイトルのエラーでアプリケーションが失敗します。このエラーは、ui-router にあまりにも多くの状態を定義すると発生します。以前にこの問題を投稿したとき、これは投稿で議論されたエラーと同じであると言われました。投稿に示されているようにコードを変更し、クロージャーでラップしました。変更後、コードは同じように動作し続けました。つまり、定義されたすべての状態で、コードは指定されたエラーで失敗しました。状態の数を減らすと、コードは正常に実行されました。以下のコードを含めましたが、コードを最小化するために定義された 1 つの状態のみを示しています。現在のコードには 40 の状態があり、アプリケーションが完成するまでに状態の数を 2 倍以上に増やします。各状態には 6 つのビューがあります。コメントされたコードは、私が最初に使用していたものです。コメントを外したコードは、前回の投稿で解決策として説明したと思われるものです。このコードを修正するための提案、またはそれが私がする必要がある場合はアプリケーションをより適切に構築するための提案を誰かが提供できるかどうかに感謝します。

(function (angular) {

angular
    .module('app',['ngResource', 'ui.router','xeditable', 'inputDropdown'])
    .config(function($logProvider, $stateProvider, $locationProvider, $urlRouterProvider ){

// var  app = angular.module('app',['ngResource', 'ui.router','xeditable', 'inputDropdown']);
// angular.module('app').config(function($logProvider, $stateProvider, $locationProvider, $urlRouterProvider ){
$logProvider.debugEnabled(true);
var routeRoleChecks = {
    admin: {auth: function(flAuth){
        return flAuth.authorizeCurrentUserForRoute('admin')
    }},
    user: {auth: function(flAuth){
        return flAuth.authorizeAuthenticatedUserForRoute()
    }}
};

$locationProvider.html5Mode({
        enabled: true,
        requireBase: false, //required to specify base of application in our HTML
        rewriteLinks: true  //Angular will rewrite URLs as necessary (add# to older browsers)
});


$stateProvider
    .state('home', {
        url: '/',
        views: {
            'content-header': {
                templateUrl: '/app/main/main-header',
                controller: 'flMainCtrl',
                caseInsensitiveMatch: true
            },
            'content-banner': {
                templateUrl: '/app/main/main-carousel',
                controller: 'flMainCtrl',
                caseInsensitiveMatch: true
            },
            'content-main': {
                templateUrl: '/app/games/game-searchList',
                controller: 'flGameSearchButtonCtrl',
                //controllerAs: 'games:id',
                caseInsensitiveMatch: true
            },
            'content-left': {
                templateUrl: '/app/games/game-menu-left',
                controller: 'flGameSearchButtonCtrl',
                //controllerAs: 'games:id',
                caseInsensitiveMatch: true
            },
            'content-right': {
                templateUrl: '/app/games/game-menu-right',
                controller: 'flGameSearchButtonCtrl',
                //controllerAs: 'games:id',
                caseInsensitiveMatch: true
            },
            'content-footer': {
                templateUrl: '/app/main/main-footer',
                controller: 'flMainCtrl',
                caseInsensitiveMatch: true
            }
        }
    })

    $urlRouterProvider.otherwise('home');
});

angular.module('app').run(function($rootScope, $location){
$rootScope.$on('$stateChangeError', function(evt, current, previous, rejection){
    if (rejection === 'not authorized'){
        $location.path('/');
    }
});
});

})(window.angular);
4

1 に答える 1