Angular JS 自定义服务

Angular JS 自定义服务 


定义服务的方式有如下几种:

    1 变量方式(value Recipe)
    2 工厂方式(factory Recipe)
    3 服务方式(service Recipe)
    4 供应者方式(provider Recipe)
    5 常量方式(Constant Recipe)
    6 特殊目的对象(Special Purpose Objects)

使用value来定义

    var mainApp = angular.module("mainApp",[]);
    
    mainApp.controller('MyController', ['clientId', function MyController(clientId) { 
    this.clientId = clientId; 
    }]);

使用factory方法

        mainApp.factory("myService",[function(){
                return {
                    name:"abc"
                }
            }]);
            
     注:工厂方式 能够创建任何类型的服务,对象常量,方法,甚至一个自定义类型的实例。

使用service方法

    app.service('myService',function(){
        this.name = 'abc';
        this.value = 'value';
    });

使用provider来定义

    mainApp.provider('myService', [function() {
        return {
                name:"abc"
            }
    }]);


    注意:factory和service能注入内置服务,而provider是不能注入内置服务的

总结:

    1 注入器通过使用 recipes 来创建两种类型的对象:服务和特殊目的对象。
    2 一共有五种类型的 recipe 用于定义如何创建对象:变量、工厂、服务、供应者和常量。
    3 工厂和服务是最常用的方式。两者仅有的不同是服务方式对于自定义类型对象效果更好,而工厂方式可以提供 JavaScript 基元和方法。
    4 供应者方式是核心方式,所有其它方式都是它的语法糖。
    5 供应者是最复杂的方式类型。除非你正在构建一段需要全局配置的可重用代码,否则不要使用它。
    6 所有特殊目的对象都通过工厂方式来定义,除了控制器。

原文地址:https://www.cnblogs.com/muqnly/p/4986069.html