2015-09-26 56 views
0

我想與requirejs使用角度。這是我的index.html文件角度與requirejs - 參數控制器不是一個函數,得到undefined

<!DOCTYPE html> 
<html> 
    <head> 
     <script data-main="/js/app.js" src="/bower_components/requirejs/require.js"></script> 
    </head> 
    <body > 
    <div ng-view ng-controller="accountController"></div> 
    </body> 
</html> 

app.js文件

require.config (
      { 
      appDir : '', 
      baseUrl : '/js/', 
      paths : 
      { 
       // Configure alias to full paths 
       'angular': '/bower_components/angular/angular.min', 
       'ngRoute': '/bower_components/angular-route/angular-route.min', 
       'main': 'main' 

      }, 
      shim : 
      { 
       'main':{ 
        deps: ["angular", 'ngRoute'] 
       }, 
       'ngRoute':{ 
        deps: ["angular"] 
       } 
      } 
     }); 

require([ "main" ], function(app) 
     { 
      // Application has bootstrapped and started... 
     }); 

main.js文件

define([ 
    'common/RouteManager' 
    ], function(RouteManager){ 
    var appName = 'elara', 
     depends = ['ngRoute'], 
     app = angular.module(appName, depends).config(RouteManager) 

     angular.bootstrap(document.getElementsByTagName('body')[0], [ ]); 

     return app; 
}); 

RouterManager.js

(function (define) { 
    define([ 
     'controllers/account' 
     ], function(){ 
     var RouteManager = $routeProvider.when("/", angularAMD.route({ 
      templateUrl: '/html/tmpl/test.html', controller: 'registerController', 
      controllerUrl: 'controllers/account.js' 
     })).otherwise({redirectTo: "/"}); 

     return ["$routeProvider", RouteManager ]; 
    }) 
}); 

最後我的控制器:

define(['common/settings'], function(settings){ 
    var accountController = function($scope, $http){ 
     $scope.username = ""; 
     $scope.password = ""; 

     $scope.register = function(){ 
      $http.post(config.apiAddress + "account/login/", {username: $scope.username, password: $scope.password}).then(
       function(data){ 
        console.log(data); 
       }, function(response){ 
        console.log(response); 
       }) 
     } 
    }; 

    return accountController; 
}); 

我越來越

參數 '的AccountController' 不是一個函數,得到了不確定

例外。當我檢查網絡選項卡時,我的account.js文件未加載。所以角度不知道accountController

+0

不要是傢伙......但爲什麼要在Angular上使用requireJS? 99%的所有Angular應用程序都需要做什麼,但會增加複雜性。您從懶惰下載的文件中獲得的節省與投入的時間相比毫無意義(您甚至可能因延遲而失去性能)。除非你正在研究一個真正龐大的代碼庫,而且懶惰下載是必須的。 –

回答

0

支架

你在你的控制器返回一個函數的任何信息,所以應該是

return accountController(); 

return accountController; 
+0

添加括號但沒有任何區別。不管怎麼說,還是要謝謝你 :) – Sefa

相關問題