【发布时间】:2013-07-27 16:18:23
【问题描述】:
我定义了一个名为“greeting”的客户服务,但无法从 $injector.get('greeting') 获取实例。它会抛出这样的错误:Unknown provider: greetingProvider 。那么获得它的正确方法是什么?以下是代码:
var app = angular.module('myDI', []);
app.config(function($provide){
$provide.provider('greeting', function(){
this.$get = function(){
return function(name) {
console.log("Hello, " + name);
};
};
});
});
var injector = angular.injector();
var greeting = injector.get('greeting');
greeting('Ford Prefect');
【问题讨论】:
-
你在询问注入器时没有传递任何模块。但是您的问候服务是在 myDI 模块中定义的。见docs.angularjs.org/api/angular.injector
-
最重要的是:你为什么要直接使用
injector?在单元测试之外使用它是非常非常罕见的......另见stackoverflow.com/q/13400687/1418796
标签: angularjs angularjs-service