角度模块错误

时间:2014-10-26 15:12:00

标签: javascript angularjs

我尝试使用最佳代码练习编写一个角度应用程序,我得到了这个:

index.html文件包含:

<!DOCTYPE html>
 <html ng-app='hrsApp'>
 <head>
<title>Hrs app</title>
<link rel="stylesheet" href="http://netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body ng-controller="homeCtrl">
<div class='container'>
    <div ng-view></div>
</div>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.0/angular.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.0/angular-route.min.js"></script>
<script src='app.js'></script>
<script src='js/controllers/homeCtrl.js'></script>
<script src='js/controllers/avCtrl.js'></script>
</body>
</html>

主文件:app.js:

angular.module('home', []);
angular.module('av', []);

// Declare app level module which depends on filters, and services
angular.module('hrsApp', [
'hrsApp.controllers',
'hrsApp.services',
'hrsApp.directives',
'hrsApp.filters',

// AngularJS
'ngRoute',

// All modules are being loaded here but EMPTY - they will be filled with controllers and      functionality
'home',
'av'
]);

// configure our routes
angular.module('hrsApp').config([
'$routeProvider',
function ($routeProvider) {
    'use strict';

    $routeProvider
        // route for the home page
        .when('/', {
            templateUrl: 'views/home.html',
            controller: 'homeCtrl'
        })

        // route for the about page
        .when('/av', {
            templateUrl: 'views/av.html',
            controller: 'avCtrl'
        })

        // route for the contact page
        .otherwise({
            redirectTo: '/'
        });
}
]);

然后我添加了家庭控制器:

/*global angular*/

angular.module('home').controller('homeCtrl', [
 '$scope',
function ($scope) {
    'use strict';

    $scope._init = function () {
        $scope.message = "welcome to Home Ctrl";
    };

    // DESTRUCTOR
    $scope.$on('$destroy', function () {

    });

    // Run constructor
    $scope._init();

    $scope.log('info', '[HomeCtrl] initialized');
}
]);

和目前的模板,目前仅包含对消息变量的绑定:

<div>{{message}}</div>

当我尝试运行我得到的应用程序时:未捕获错误:[$ injector:modulerr] http://errors.angularjs.org/1.3.0/ $ injector / modulerr?p0 = hrsApp&amp; p1 =错误%3A%... googleapis.com%2Fajax%2Flibs %2Fangularjs%2F1.3.0%2Fangular.min.js%3A18%3A3)angular.js:38

知道我做错了吗?

1 个答案:

答案 0 :(得分:1)

从您的代码中我可以看到您注入了未声明的模块。

按顺序执行,因此您必须在代码中添加以下行:

angular.module('hrsApp.controllers',[]);
angular.module('hrsApp.services',[]);
angular.module('hrsApp.directives',[]);
angular.module('hrsApp.filters',[]);