获取"错误:[$injector:unpr]未知提供商"错误

Getting "Error: [$injector:unpr] Unknown provider" error

本文关键字:错误 quot 未知 提供商 unpr 获取 injector      更新时间:2023-09-26

我正在编写基于此实践的路由解析:https://github.com/johnpapa/angular-styleguide#style-y081

但是我得到了:

错误:[$injector:unpr] Unknown provider: toursServiceProvider <- toursService <- MainController

我的代码是这样的:route-config.js文件

.when('/', {
    templateUrl: 'scripts/partials/home.partial.html',
    controller: 'MainController',
    controllerAs: 'vm',
    resolve: {
        toursService: function(genericData) {
            return genericData.getTours;
        },
        addressService: function(genericData) {
            return genericData.getAddress;
        },
        aboutService: function(genericData) {
            return genericData.getAbout;
        }
    }
})

main.controller.js文件:

(function () {
    'use strict';
    angular
        .module('excursion')
        .controller('MainController', MainController);
    MainController.$inject = ['toursService', 'addressService', 'aboutService'];
    function MainController(toursService, addressService, aboutService) {
        // vm is our capture variable
        var vm = this;
        vm.tour = toursService.getTours;
        vm.address = addressService.getAddress;
        vm.about = aboutService.getAbout;
    }
})();

最后我得到了它的工作,我需要$timeout使承诺可用时,控制器加载,这里是更新的代码(只是不同的路由,但逻辑是相同的):

.when('/tours', {
    templateUrl: 'scripts/partials/pages/tours.partial.html',
    controller: 'TourController',
    controllerAs: 'vm',
    resolve: {
        toursService: function(genericData, $timeout) {
            return $timeout(function() {
                return genericData.getTours;
            }, 1000);
        }
    }
})