AngularJs依赖注入
发布时间:2020-12-17 10:33:17 所属栏目:安全 来源:网络整理
导读:什么是依赖注入 wiki 上的解释是:依赖注入(Dependency Injection,简称DI)是一种软件设计模式,在这种模式下,一个或更多的依赖(或服务)被注入(或者通过引用传递)到一个独立的对象(或客户端)中,然后成为了该客户端状态的一部分。 该模式分离了客户
什么是依赖注入
wiki 上的解释是:依赖注入(Dependency Injection,简称DI)是一种软件设计模式,在这种模式下,一个或更多的依赖(或服务)被注入(或者通过引用传递)到一个独立的对象(或客户端)中,然后成为了该客户端状态的一部分。 该模式分离了客户端依赖本身行为的创建,这使得程序设计变得松耦合,并遵循了依赖反转和单一职责原则。与服务定位器模式形成直接对比的是,它允许客户端了解客户端如何使用该系统找到依赖 value Value 是一个简单的 javascript 对象,用于向控制器传递值(配置阶段) factory factory 是一个函数用于返回值。在 service 和 controller 需要时创建。 通常我们使用 factory 函数来计算或返回值。 provider AngularJS 中通过 provider 创建一个 service、factory等(配置阶段)。 Provider 中提供了一个 factory 方法 get(),它用于返回 value/service/factory。
创建服务的几个实例: var app = angular.module('myApp',[]); //创建自定义服务2,使用factory 方法 app.factory('multiply',function ($window) { var multi = {}; multi.exec = function (number) { $window.alert(number); return number *= 10; } return multi; }); //创建自定义服务1,使用service方法 app.service('addition',function (multiply) { this.add = function (x) { x = multiply.exec(x); return x + 10; } }); //创建自定义服务3,使用provider //不支持,服务注入 $window app.provider('division',function () { this.$get = function () { var obj = {}; obj.exec = function (x) { return x / 2; } return obj; }; }); //可以在配置中设置 app.config(function ($provide) { $provide.provider('MathService',function () { this.$get = function () { var factory = {}; factory.multiply = function (a,b) { return a * b; } return factory; }; }); }); //要是使用定义的服务,需要再定义控制器的时候独立添加 app.value('number',10); app.controller('myCtrl',function ($scope,number,addition,division,MathService) { $scope.number = number; $scope.number2 = addition.add($scope.number); $scope.number3 = division.exec(number); console.info(MathService.multiply(number,3)); }); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |