zoukankan      html  css  js  c++  java
  • 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方法创建服务实例。

    版权声明:本文为小平果原创文章,转载请注明:http://blog.csdn.net/i10630226

  • 相关阅读:
    搜索复习-中级水题
    搜索复习-基础水题(一共12道)
    TCPThree_C杯 Day1
    bzoj1579 道路升级
    bzoj3732 Network(NOIP2013 货车运输)
    bzoj1624 寻宝之路
    bzoj1430 小猴打架
    bzoj2763 飞行路线
    2017-10-28-afternoon-清北模拟赛
    2017-10-28-morning-清北模拟赛
  • 原文地址:https://www.cnblogs.com/dingxiaoyue/p/4948259.html
Copyright © 2011-2022 走看看