0
我的應用程序失敗,標題中出現錯誤。當我爲我的UI路由器定義了太多的狀態時,會發生此錯誤。以前,當我發佈這個問題時,我被告知這與發帖討論的錯誤相同,「Angular」狀態已經定義了「運行concat/uglify後出錯」。我改變了我的代碼,如帖子所示,將它封裝在封閉中。更改後,代碼繼續以相同的方式運行。也就是說,在所有定義的狀態下,代碼都會失敗並顯示錯誤。當我減少狀態的數量代碼運行良好。 我已經包含下面的代碼,但我只顯示一個狀態定義爲最小化代碼。我目前的代碼有40個狀態,並且在應用程序完成時,我的狀態數量會增加一倍以上。每個州有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到app.js和routes.js。然後我將routes.js添加到腳本文件中。不工作。錯誤消息如下:未捕獲錯誤:[$ injector:nomod]模塊'app'不可用!您拼錯了模塊名稱或忘記加載模塊名稱。如果註冊模塊確保您指定依賴關係作爲第二個參數。 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。請參考這個鏈接我幫你... –