Angular模块配置未调用

Bar*_*art 26 javascript angularjs

我试图绕过AngularJS并遇到问题.

var myApp = angular.module('myApp', ['myApp.services']);

myApp.config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) {

    console.log('Configuring module "myApp"');

    $routeProvider.when('/dashboard', {templateUrl: 'partial/dashboard', controller: DashboardController});
    $routeProvider.when('/menu', {templateUrl: 'partial/other', controller: OtherController});
    $routeProvider.otherwise({redirectTo: '/dashboard'});

    $locationProvider.html5Mode(true);
 }]);
Run Code Online (Sandbox Code Playgroud)

据我所知,在加载模块时应该调用配置函数.但事实并非如此!

我有ng-app="myApp"关于<body>标签的指令.并且脚本在正文关闭标记之前以正确的顺序加载(至关重要).

    <script src="angular.js"></script>      
    <script src="app.js"></script>
    <script src="services.js"></script>
    <script src="controllers.js"></script>
</body>
Run Code Online (Sandbox Code Playgroud)

我很确定我必须在这里忽视一些微不足道的事情.应该在控制台上打印一条消息.但它仍然是空的,没有任何错误或警告.

应用程序的部分不依赖于路线运行得很好.

更新:我的service.js的简化版本

'use strict';

angular.module('myApp', function ($provide) {
    $provide.factory('myService', function ($http) {
        var service = function () {
            ...
            service implementation
            ...
        };

        return new service();
    });
});
Run Code Online (Sandbox Code Playgroud)

Bar*_*art 32

似乎我用于定义服务的方法覆盖了我的myApp模块.

这是最重要的路线

angular.module('myApp', function ($provide) ...
Run Code Online (Sandbox Code Playgroud)

此代码只是重新定义myApp模块并添加一个函数来配置该模块.


我将service.js重构为这个简化版本,它开始工作.

var myApp = angular.module('myApp');

myApp.factory('securityService', function () {
    return SomeFancyServiceObject();
});
Run Code Online (Sandbox Code Playgroud)


Ill*_*dan 11

我在html标签中缺少ng-app ="myApp" - 我在阅读你的问题时意识到这一点:-)

  • 叹.这是一个小小的错误,花了我一个小时的调试成本 (3认同)