angular的依赖注入是什么?无法理解,请高手解答
网友回复
依赖注入(Dependency Injection,简称DI)是一种软件设计模式,在这种模式下, 一个或更多的依赖(或服务)被注入(或者通过引用传递)到一个独立的对象(或客户端)中,然后成为了该客户端状态的一部分。 该模式分离了客户端依赖本身行为的创建,这使得程序设计变得松耦合,并遵循了依赖反转和单一职责原则。与服务定位器模式形 成直接对比的是,它允许客户端了解客户端如何使用该系统找到依赖 .
ANGULAR依赖注入机制 AngularJS 提供了5个核心组件用来作为依赖注入: value factory service provider constant $PROVIDE (供应商) 供应商==>泛指provider 服务==>泛指service provider==>provider()方法创建的代码块 service==>service()方法创建的代码块 $provide服务负责告诉Angular如何创造一个新的可注入的代码块:即服务。服务会被叫做供应商的代码块来定义,我们可以使用$provide来创建一个供应商。 我们需要使用$provide中的provider()方法来定义一个供应商,同时也可以通过要求$provide被注入到一个应用的config函数中来获得$provide服务。 $PROVIDE $provide负责告诉Angular如何创建新的可注入的事物,即服务。服务是被providers定义的,即当你用$provide创建的。通过$provide服务来定义provider,你可以通过在应用的配置函数中注入$provide来持有该服务。
angular.module(‘app’,[]).config(function($provide) { $provide.provider('greeting', function() { this.$get = function() { return function(name) { alert("Hello, " + name); }; }; }); });在上面的例子中我们为一个服务定义了一个叫做greeting的新provider。 我们可以把一个叫做greeting的变量注入到任何可注入的函数中 (例如控制器)然后Angular就会调用这个provider的$get函数来返回这个服务的一个实例。 在上面的例子中,被注入的是一个函数, 它接受一个参数并且根据这个参数alert一条信息。我们可以像下面这样使用它:
app.controller('MyCtrl', function($scope, greeting) { $scope.onClick = function() { greeting('Ford Prefect'); }; });定义供应商的方法 1、Constant Constant定义常量,Constant定义的值不应该被改变,它可以被注入到任何地方...
点击查看剩余70%