2015-09-26 76 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

相关问题