您好,欢迎来到二三娱乐。
搜索
您的当前位置:首页factory、service、provider

factory、service、provider

来源:二三娱乐

我们先通过一段代码来认识一下factoryserviceprovider

var myApp = angular.module('myApp', []);
/*
 * Factory
 */
myApp.factory('Factory', function() {
    return {
        sayHello: function() {
            return "Hello, 张先生";
        }
    };
});
/*
 * Service
 */
myApp.service('Service', function() {
    this.sayHello = function() {
        return "Hello, 张先生";
    };
});
/*
 * Provider
 */   
myApp.provider('Provider', function() {
    this.name = '先生';
    this.$get = function() {
        var name = this.name;
        return {
            sayHello: function() {
                return "Hello, " + name;
            }
        }
    };

    this.setName = function(name) {
        this.name = name;
    };
});
/*
 * config provider
 */        
myApp.config(function(myProvider){
    myProvider.setName('张先生');
});
/*
 * 方法调用
 */
function MyCtrl($scope, Provider, Factory, Service) {
    $scope.hellos = [
        Provider.sayHello(),
        Factory.sayHello(),
        Service.sayHello()];
}
factory: factory是以个可注入的function。当使用factory来创建服务的时候,相当于新创建了一个对象,然后在这个对象上新添属性,最后返回这个对象。
service: service是一个可注入的构造函数。service是单例模式的。当使用service创建服务的时候,相当于使用new关键词进行了实例化。因此,你只需要在this上添加属性和方法,服务就会自动的返回this
provider是一个可配置的factoryprovider是唯一一种可以创建用来注入到config()函数的服务的方式。想在你的服务启动之前,进行一些模块化的配置的话,就使用provider

Copyright © 2019- yule263.com 版权所有 湘ICP备2023023988号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务