在我能找到的每条信息(包括角度文档)中,将服务注入提供者的方法是通过以下$get
方法:
var myApp = angular.module('myApp', []);
myApp.provider('helloWorld', function() {
this.$get = function() {
return {
sayHello: function() {
return "Hello, World!"
}
}
};
});
function MyCtrl($scope, helloWorld) {
$scope.hellos = [helloWorld.sayHello()];
}
这将在angular 1.2及以下版本中完美运行:http: //jsfiddle.net/1kjL3w13/
不过切换到 angular 1.3,$get
功能完全中断。似乎从$get
函数返回的任何内容都不再用于实例化提供程序,因此现在对于注入 fe 服务毫无用处。
与上面相同的示例,但使用angular 1.3:http: //jsfiddle.net/duefnz47/
这正是角度文档中提供的行为。所以要么文档是错误的,要么我完全误解了它。我真的不在乎该$get
方法是否像以前一样工作,我只需要能够可靠地将服务注入我的提供程序。