【问题标题】:Unknown provider on calling a factory on controller "Error: [$injector:unpr]"在控制器上调用工厂的未知提供商“错误:[$injector:unpr]”
【发布时间】:2016-10-09 20:24:14
【问题描述】:

我在调用控制器中的工厂时遇到问题。工厂应该对控制器调用执行 REST 请求,但是发生了这个错误:

Error: [$injector:unpr] Unknown provider: SearchServiceProvider <- SearchService <- HomeController

我尝试解决这个问题几天,但没有解决这个问题。

busca.app.js

(function () {
'use strict';

angular
    .module('MyModule', ['ngMessages'])
    .factory('SearchService', Service);

function Service($http) {
    var service = {};
    
    service.SearchPendingDeliveries = SearchPendingDeliveries;

    return service;

    function SearchPendingDeliveries(docNumberClient, callback) {
        //some code
    }
}
})();

home.controller.js

(function() {
'use strict';

angular
    .module('MyModule', [])
    .controller('HomeController', HomeController);

function HomeController(SearchService) {
    var vm = this;

    vm.searchDeliveriesFromUser = searchDeliveriesFromUser;

    function searchDeliveriesFromUser() {
        SearchService.SearchPendingDeliveries(vm.identifierNumber, function (result) {
            if (result === true) {
                console.log(true);
            } else {
                console.log(false);
            }
        });
    };
};
})();

index.html

 ...
 <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.js"></script>
 <script src="https://code.angularjs.org/1.5.8/angular-messages.js"></script>
 <script src="service/busca.app.js"></script>
 <script src="home/home.controller.js"></script>
 ...

【问题讨论】:

    标签: angularjs angularjs-directive


    【解决方案1】:

    你要声明同一个模块两次

    尝试改变

    angular
        .module('saldanhaTranporte', [])
        .controller('HomeController', HomeController);
    

    angular
        .module('saldanhaTranporte')
        .controller('HomeController', HomeController);
    

    module() 中没有第二个参数,它是 getter 而不是 setter,并返回对现有模块的引用

    【讨论】:

    • 感谢您的回答!我尝试了这个,但发现了其他错误:“错误:[$injector:nomod] 模块'saldanhaTranporte'不可用!”和“错误:[$injector:modulerr] 无法实例化模块saldanhaTranporte”
    • 如果所有命令都正确并且文件加载正确,那么 可能 是由某个地方的语法错误等简单的事情引起的。这不是唯一的原因,但很常见
    • 好的。所以这个错误与“未知提供者”无关?此错误是由其他代码中的某些内容引起的吗?是这个?
    猜你喜欢
    • 1970-01-01
    • 2014-12-19
    • 2017-04-25
    • 1970-01-01
    • 1970-01-01
    • 2016-08-17
    • 2015-01-25
    • 2016-03-26
    • 2014-07-19
    相关资源
    最近更新 更多