AngularJSAngularJS重视注入

Angular 提供了三种办法来创设并注册我们协调的 service。

  • factory
  • service
  • provider
  • value

  大家首先来创立贰个module(模块),本文中的全部代码都会用到那几个myModule。

 var myModule = angular.module( "myModule", [] );
  1. 用 factory 不怕成立一个目的,为它添加属性,然后把那个指标回来出来。

    //第3种写法(常用)
    myModule.factory(‘greeting’,function(){

    var service = {};
    service.greetingFun = function(name){
        alert('hello '+name);
    }
    return service;
    

    })
    //第三种写法
    myModule.factory(‘greeting’,function(){

    return function(name){
        alert('hello '+name);
    }
    

    })

  2. service  是用”new”关键字实例化的。因而,你应有给”this”添加属性,然后
service 重临”this”。

myModule.service('greeting',function(){
    this.greetingFun = function(name){
        alert('hello '+name);
    }
});

  3. provider  是唯一1种你可以传进 .config() 函数的
service。当你想要在 service
对象启用在此以前,先进行模块范围的配置,这就应当用
provider。当  myModule.config()修改配置项时:无论曾几何时你为一个劳务概念了三个provider,那一个provider的名字都是serviceProvider。在此间service是服务的名字。

myModule.provider('greeting',function(){
    //可在此处定义变量或函数,即myModule.config()函数可以访问、修改。
    //$get内则不可以,只能用于控制器访问。
    //此处为provider与factory和service的区别。
    this.$get = function(){
        return function(name){
            alert('hello '+name);
        }
    }
})

  4. value 值是简单的JavaScript对象

myModule.value('greeting',function(name){
    alert('hello '+name);
})

详见表达

相关文章