一尘不染

角模块配置未调用

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);
 }]);

据我了解,模块加载时应调用配置函数。 但事实并非如此!

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>

我敢肯定我一定会在这里忽略一些琐碎的事情。应该有一条消息打印到控制台。但是它仍然是空的,没有任何错误或警告。

应用程序的各个部分不依赖于路线即可正常运行。

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

'use strict';

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

        return new service();
    });
});

阅读 266

收藏
2020-07-04

共1个答案

一尘不染

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

这是压倒一切的线

angular.module('myApp', function ($provide) ...

这段代码只是简单地重新定义了myApp模块,并添加了配置该模块的功能。


我将service.js重构为此简化版本,并开始工作。

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

myApp.factory('securityService', function () {
    return SomeFancyServiceObject();
});
2020-07-04