15

我定义了一个名为“greeting”的客户服务,但无法从 $injector.get('greeting') 获取实例。它会抛出这样的错误:Unknown provider: greetingProvider <- greeting。那么获得它的正确方法是什么?以下是代码:

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');
4

1 回答 1

26

您需要从模块创建注入器。

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(['myDI', 'ng']); //Add this line
var greeting = injector.get('greeting');
greeting('Ford Prefect');
var injector = angular.injector();

在这里试试。小提琴

于 2013-07-27T13:05:00.053 回答