2015-08-29 209 views
0

你好,我正在嘗試開發一個角度的網絡應用程序。我已經將ng-app =「appApp」添加到html文件以及.js文件中。無法加載模塊

main.controller.js

(function() { 
'use strict'; 

// register the controller as MainController 
angular 
    .module('appApp.main') 
    .controller('MainController', MainController); 

/** 
* @ngdoc function 
* @name appApp.main.provider:MainController 
* @description 
* Provider of the {@link appApp.main.controller:MainController MainController} 
* 
* @param {Service} $scope The scope service to use 
* @param {Service} $http The http service to use 
*/ 

// MainController.$inject = []; 

function MainController() { 
    var vm = this; 
} 

})(); 

main.js

(function() { 
'use strict'; 

// register the route config on the application 
angular 
    .module('appApp.main', ['ui.router']) 
    .config(configMainRoute) 

// inject configMainRoute dependencies 
configMainRoute.$inject = ['$stateProvider', 'mainMenuProvider']; 

// route config function configuring the passed $stateProvider 
function configMainRoute($stateProvider, mainMenuProvider) { 
    var mainState = { 
     name: 'main', 
     url: '/', 
     authenticate: true, 
     templateUrl: 'app/main/main.html', 
     controller: 'MainController', 
     controllerAs: 'vm' 
    }; 

    $stateProvider.state(mainState); 

    mainMenuProvider.addMenuItem({ 
     name: 'Home', 
     state: mainState.name, 
     order: 1 
    }); 
} 

})(); 

app.js

(function() { 
'use strict'; 

angular 
    .module('appApp', [ 
     // Add modules below 
     'ngCookies', 
     'ngResource', 
     'ngSanitize', 
     'ngMessages', 
     'ngMaterial', 
     'ui.router', 
     'btford.socket-io', 
     'appApp.main' 
    ]) 
    .config(appConfig) 
    .run(appRun); 

...........

當我運行的應用程序,我得到這個錯誤:

  1. 錯誤:[NG:AREQ]參數 'MainController' 是不是一個功能,得到了不確定
  2. 未捕獲的錯誤:[$注射器:NOMOD]模塊 'appApp.main' 不可!您拼錯了模塊名稱或忘記加載模塊名稱。如果註冊模塊確保您指定依賴關係作爲第二個參數。

我該如何解決這個錯誤?謝謝

+0

您是使用某個構建系統,還是隻是在index.html中將腳本文件添加爲腳本標記?因爲它依賴於文件的順序,所以應用程序必須是第一個控制器第二個 – tomastrajan

+0

@tomastrajan我使用yeoman fullstack生成器,現在我試圖編輯客戶端 –

回答

2

的第一件事是:

在你寫

ng-app="appApp" 

但在模塊定義你寫

angular 
.module('appApp.main', ['ui.router']) 

模塊名稱應該是HTML除非你有另一個appApp模塊,並將「appApp.main」模塊添加爲依賴關係。

另一件事是因爲您已經使用「ui-router」,您需要將html中的ui-router的js庫文件以及角庫文件鏈接起來。

只需檢查js文件的順序。在第一角度,那麼所有庫JS,然後應用程序,主,主控制器

+0

我有一個其他模塊appApp。對不起,我沒有添加它。我將編輯我的問題 –

+0

好吧,然後檢查js文件的順序。首先,角色,然後是所有庫js,然後是應用程序,主要,主控制器。 – Indra

+0

謝謝。你能編輯你的答案,並填寫上面的評論,所以我可以將其標記爲答案? –

1

我認爲,

1.You應該調用納克應用內= 「appApp.main」 或

2。您應該首先聲明appApp模塊。您應該替換main.js中的某些代碼

angular.module('appApp.main', []); 

angular.module('appApp', [ 
     'ui.router', 
     'appApp.main' 
    ])... 

另外,請刪除main.js中的[ui.router]。它在app.js中聲明

+0

a已經有一個appApp模塊。我編輯我的問題。對不起,以前沒有提供過 –

+0

行。你是否修復了這個問題 –

+0

我發現了這個問題,但我仍然修復了這個問題 –