タイトルでエラーが発生してアプリケーションが失敗しています。私の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);
私は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 –
私はこれを実行することができますが、私の元のコードと同じ問題があります。つまり、状態を追加すると、元のエラーが返されるしきい値に達しました。その他の提案はありますか? –
http://stackoverflow.com/questions/30888486/angular-state-already-defined-error-after-running-concat-uglify私の助けになるこのリンクを参照してください... –