0

タイトルでエラーが発生してアプリケーションが失敗しています。私のui-routerにあまりに多くの状態を定義すると、このエラーが発生します。以前私がこの問題を投稿したとき、私は、これが投稿で議論されたエラーと同じであると言われました、 "Angular"状態はすでに "concat/uglifyの実行後のエラー"を定義しました。私はポストに示されているように自分のコードを変更し、クロージャーでラップしました。変更後、コードは同じように動作し続けました。つまり、すべての定義された状態では、コードは前述のエラーで失敗しました。状態の数を減らしたとき、コードは正常に動作しました。 以下のコードを追加しましたが、コードを最小限にするために定義された状態を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); 

答えて

1

この例を試してください:これは私の例を働いている

がangularjsライブラリが含ま:

<script src="assets/js/angularjs-min.js"></script> 
<script src="assets/js/angular-ui-router.js"></script> 
<script src="app/app.js"></script> 
<script src="app/routes.js"></script> 

があなたのhtml身体の部分にng-appを追加します。

<html lang="en" ng-app="myApp" ng-cloak=""></html> 

app.jsを

var app = angular.module("myApp", ['ui.router']); 

routes.js

app.config(function ($stateProvider, $urlRouterProvider) { 
$stateProvider 
.state("home", { 
    url: "/home", 
    templateUrl: './view/home.php', 
    controller: 'homeCtrl' 
}).state("login", { 
    url: "/login", 
    templateUrl: './view/login.php', 
    controller: 'loginCtrl' 
}); 
$urlRouterProvider.otherwise('home'); }); 
+0

私はapp.jsとroutes.jsに私の既存のapp.jsを分割し、提案された変更を行いました。次に、routes.jsをscriptsファイルに追加しました。動作しませんでした。エラーメッセージ:Uncaught Error:[$ injector:nomod]モジュール 'app'は利用できません!モジュール名のスペルが間違っているか、モジュール名を読み込めませんでした。モジュールを登録する場合は、依存関係を2番目の引数として指定するようにしてください。 http://errors.angularjs.org/1.4.8/$injector/nomod?p0=app –

+0

私はこれを実行することができますが、私の元のコードと同じ問題があります。つまり、状態を追加すると、元のエラーが返されるしきい値に達しました。その他の提案はありますか? –

+0

http://stackoverflow.com/questions/30888486/angular-state-already-defined-error-after-running-concat-uglify私の助けになるこのリンクを参照してください... –

関連する問題