angular with requirejs - 参数控制器不是函数,未定义

时间:2015-09-26 18:18:01

标签: angularjs requirejs

我正在尝试使用带有requirejs的角度。这是我的index.html文件

<!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

一无所知

1 个答案:

答案 0 :(得分:0)

括号 你正在控制器中返回一个函数,它应该是 return accountController(); 不 return accountController;