3

在我能找到的每条信息(包括角度文档)中,将服务注入提供者的方法是通过以下$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方法是否像以前一样工作,我只需要能够可靠地将服务注入我的提供程序。

4

1 回答 1

2

问题是您使用的全局控制器根据角度 1.3 无效

所以使用

angular.module('myApp').controller('MyCtrl',function ($scope, helloWorld) {    
    $scope.hellos = [helloWorld.sayHello()];
});

这是更新的小提琴

**

移民文件官方

** 希望对您有所帮助 :)

于 2015-06-30T12:00:30.143 回答