angularJS 服务--$provide里factory、service方法


服务提供了一种能在应用的整个生命周期内保持数据的方法,它能够在控制器之间进行通

信,并且能保证数据的一致性。


1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <meta  charset="utf-8">
 5     <title>2、angularjs自定义服务</title>
 6     <script src="../js/angularjs.js"></script>
 7     <script src="../js/index3.js"></script>
 8
 9 </head>
10 <body>
11 <!-- angularjs的数据绑定,双向绑定,M,V,c之间的绑定 -->
12
13
14     <div ng-app="myApp" ng-controller="firstController">
15         <input type="text" ng-model="name" value="" />
16         {{name}}
17     </div>
18
19
20 </body>
21 </html>

1、注册一个服务

使用angular.module的factory API创建服务,是最常见也是最灵活的方式


1

2

3

4

5

6

7

8

9

10

var
myApp = angular.module(‘myApp‘, []);

    

myApp.service(‘service1‘,
function(){

            return
[1,2,3,4,5,6];

    });

    

myApp.factory(‘factory1‘,
function(){

            return
"111";

    });

 2、使用服务

可以在控制器、指令、过滤器或另外一个服务中通过依赖声明的方式来使用服务。AngularJS

会像平时一样在运行期自动处理实例化和依赖加载的相关事宜。

var myApp = angular.module(‘myApp‘, [] , function($provide){

// 1、通过$provide.provider自定义服务
    $provide.provider(‘provider‘,function(){
        this.$get = function(){
            return {
                message: ‘xiaoguoping‘
            }
        }
    });
    //console.log(1);

    $provide.provider(‘provider2‘,function(){
        this.$get = function(){
            return {
                message: ‘xiaoguoping2‘
            }
        }
    });

// 2、通过$provide.service自定义服务
    $provide.service(‘service1‘, function(){
            return [1,2,3,4,5,6];
    });
// 3、通过$provide.factory自定义工厂
    $provide.factory(‘factory1‘, function(){
            return "111";
    });

    // myApp.service(‘service1‘, function(){
    //         return [1,2,3,4,5,6];
    // });

    // myApp.factory(‘factory1‘, function(){
 //             return "111";
 //     });
// 3、通过$provide.factory自定义工厂
    $provide.factory(‘factory1‘, function(){
            return "111";
    });

});
// 自定义的服务均可被其他服务调用,入controller.
myApp.controller(‘firstController‘, function($scope , provider, provider2, service1, factory1){
    $scope.name = ‘张三‘;
    console.log(provider);
    console.log(provider2);
    console.log(service1);
    console.log(factory1);
});在AngularJS应用中,factory()方法是用来注册服务的最常规方式,同时还有其他一些AP可以在特定情况下帮助我们减少代码量。共有5种方法用来创建服务:

 factory()----函数可以返回简单类型、函数乃至对象等任意类型的数据

 service()-----函数数组、对象等数据

 constant()----value()方法和constant()方法之间最主要的区别是,常量可以注入到配置函数中,而值不行。

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

 provider()----提供者是一个具有$get()方法的对象,$injector通过调用$get方法创建服务实例。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-12-17 16:57:42

angularJS 服务--$provide里factory、service方法的相关文章

AngularJS中的provider,factory,service方法

使用$provide中的provider方法定义服务 前面已经知道了module的定义为angular.module(name,[requires],configFn);configFn参数是配置服务的.ng供服务的过程涉及它的依赖注入机制.AngularJS是用$provider对象来实现自动依赖注入机制的.$provide.provider是一种定义服务的方法.注入机制通过调用provider的$get方法,把得到的对象作为参数进行相关的调用. <!DOCTYPE html> <ht

Angularjs 自定义服务 provide 里 provider 方法 以及 factory、 service 方法以及 provider 供应商的概念

Angularjs 自定义服务 provide 里 provider 方法 以及factory. service 方法以及 provider 供应商的概念 学习要点:1. Angularjs 中的 provider 方法2. Angularjs 中的 factory 方法3. Angularjs 中的 service 方法4. provider 供应商的概念5. 研究 ionic 代码中的 services 当你初试 Angular 时,很自然地就会往 controller 和 scope 里堆

angularjs factory,service,provider 自定义服务的不同

angularjs框架学了有一段时间了,感觉很好用.可以把angularjs的app理解成php的class,controller是控制器,而内置服务和自定义服务就可以理解成models了.angularjs的内置服务多,例如:$scope,$rootScope,$http,$q,$resource,$routeProvider等等,下面来说一下怎么自定义服务 一,factory,service,provider自定义服务,services.js 'use strict'; /* Service

angularjs 中 Factory,Service,Provider 之间的区别

本片文章是使用了 angularjs 中使用 service 在controller 之间 share 对象和数据 的code(http://jsfiddle.net/kn46u0uj/1/) 来进行演示 Factory,Service,Provider 之间的区别 1. Factory factory('dataService',function(){ return { golbal_sitename:"this is the shared value", sayHello:func

AngularJS中几种Providers(Factory, Service, Provider)的区别

原文: http://blog.xebia.com/2013/09/01/differences-between-providers-in-angularjs/ 什么是Provider? AngularJS docs 是这样定义provider的: provider是一个对象, 它有一个$get()方法. injector 调用$get方法以此来创建一个service的实例. Provider还有一些其他的方法用来配置provider. AngularJS 使用 $provide 注册新的pro

创建服务factory和service方法的区别

factory方法返回的是对象,json或数组,而service方法返回的是字符串类型的数据 angular.module('myApp',[]).factory('服务名',function(){ return {uname:'kevin',pwd:'123'} }).controller('ctrlname',function('服务名',$scope){ }.directive('myDirective', function(){ return { template: '<button>

Android Service生命周期 Service里面的onStartCommand()方法详解

2014-10-21 23:40 32人阅读 评论(0) 收藏 举报 在Demo上,Start一个Service之后,执行顺序:onCreate - > onStartCommand 然后关闭应用,会重新执行上面两步. 但是把代码拷贝到游戏工程发现,关闭游戏后,只执行了onStart,却没有执行onStartCommand! 查找到下面的文章: [plain] view plaincopy Service里面的onStartCommand()方法详解 启动service的时候,onCreate方

Angularjs $scope 里面的$apply 方法 和 $watch 方法

Angularjs $scope 里面的$apply 方法 和 $watch 方法 学习要点:1. Angularjs $scope 里面的$apply 方法2. Angularjs $scope 里面的$watch 方法 1. Angularjs $scope 里面的$apply 方法$apply 方法作用:Scope 提供$apply 方法传播 Model 的变化$apply 方法使用情景:AngularJS 外部的控制器( DOM 事件.外部的回调函数如 jQuery UI 空间等)调用了

Angular之Providers (Value, Factory, Service and Constant )

官方文档Providers Each web application you build is composed of objects that collaborate to get stuff done.(每一个web应用都是由一些对象“组装”成的,这些对象共同合作,来完成特定的任务)These objects need to be instantiated and wired together for the app to work.(这些对象需要被实例化,然后“组装”在一起来使web应用能