Page 142 - AngularJS权威教程
P. 142

122  第 14 章  服务


                 // Get the injector
                 var injector = angular.injector(['myApp']); // Invoke our service
                 injector.invoke(
                      ['UserService', function(UserService) {
                         // UserService returns
                         // {
                         // 'name': 'Ari',
                         //  getFavoriteColor: function() {}
                         // }
                         }]);
                 .provider()是非常强大的,可以让我们在不同的应用中共享服务。

                 了解constant()和value()方法对于创建服务也是非常重要的。

             14.3.4  constant()


                 可以将一个已经存在的变量值注册为服务,并将其注入到应用的其他部分当中。例如,假设
             我们需要给后端服务一个apiKey,可以用constant()将其当作常量保存下来。

                 constant()函数可以接受两个参数。
                  name(字符串)

                 需要注册的常量的名字。

                  value(常量)
                 需要注册的常量的值(值或者对象)。
                 constant()方法返回一个注册后的服务实例。

                 angular.module('myApp') .constant('apiKey','123123123')

                 这个常量服务可以像其他服务一样被注入到配置函数中:
                 angular.module('myApp')
                 .controller('MyController', function($scope, apiKey) {
                         // 可以像上面一样用apiKey作为常量
                         // 用123123123作为字符串的值
                         $scope.apiKey = apiKey;
                 });


                         这个常量不能被装饰器拦截。


             14.3.5  value()

                 如果服务的$get方法返回的是一个常量,那就没要必要定义一个包含复杂功能的完整服务,
             可以通过value()函数方便地注册服务。
                 value()方法可以接受两个参数。

                  name(字符串)
                 同样是需要注册的服务名。
   137   138   139   140   141   142   143   144   145   146   147