Das beste AngularJS Injektion Abhängigkeit-Tutorial im Jahr 2024. In diesem Tutorial können Sie Was ist Dependency Injection,Wert,Fabrik,Versorger,konstante,Beispiele, lernen
Erklärung im Wiki sind: Dependency Injection (Dependency Injection, abgekürzt DI) ist ein Software-Entwurfsmuster, in diesem Modus eine oder mehrere abhängige (oder Dienstleistung) injiziert wird (oder als Referenz übergeben) an einen unabhängigen Object (oder Client), und dann wurde ein Teil des Client-Zustand.
Das Modell trennt Kunden auf sich selbst verlassen, ein Verhalten zu schaffen, die das Programm-Design macht wird lose gekoppelt und folgt dem Dependency Inversion Prinzip der Einzel und Verantwortlichkeiten. Service Locator Musterbildung und ein direkter Vergleich ist, dass es den Kunden zu verstehen können, wie Kunden das System nutzen, um die Abhängigkeit zu finden
Ein Wort --- nichts, was du nicht zu mir kommen, ich werde Sie etwas finden.
AngularJS bieten einen guten Mechanismus für Dependency Injection. Die folgenden fünf Kernkomponenten wie Dependency Injection verwendet:
Der Wert ist ein einfaches Javascript-Objekt, übergeben Sie einen Wert an die Steuerung (Konfigurationsphase):
// 定义一个模块 var mainApp = angular.module("mainApp", []); // 创建 value 对象 "defaultInput" 并传递数据 mainApp.value("defaultInput", 5); de. // 将 "defaultInput" 注入到控制器 mainApp.controller('CalcController', function($scope, CalcService, defaultInput) { $scope.number = defaultInput; $scope.result = CalcService.square($scope.number); $scope.square = function() { $scope.result = CalcService.square($scope.number); } });
Fabrik ist eine Funktion, die einen Wert zurückgibt. Erstellen und Controller zum Zeitpunkt der Servicebedarf.
Normalerweise verwenden wir zur Berechnung oder Factory-Funktion Rückgabewerte.
// 定义一个模块 var mainApp = angular.module("mainApp", []); // 创建 factory "MathService" 用于两数的乘积 provides a method multiply to return multiplication of two numbers mainApp.factory('MathService', function() { var factory = {}; factory.multiply = function(a, b) { return a * b } return factory; }); // 在 service 中注入 factory "MathService" mainApp.service('CalcService', function(MathService){ this.square = function(a) { return MathService.multiply(a,a); } }); de.
AngularJS von einem Provider-Service, Fabrik usw. (Projektierungsphase) erstellt.
Provider stellt eine Factory-Methode get (), die den Wert / service / Fabrik zurück.
// 定义一个模块 var mainApp = angular.module("mainApp", []); de. // 使用 provider 创建 service 定义一个方法用于计算两数乘积 mainApp.config(function($provide) { $provide.provider('MathService', function() { this.$get = function() { var factory = {}; factory.multiply = function(a, b) { return a * b; } return factory; }; }); });
Konstante (Konstante) verwendet, um Werte in der Konfigurationsphase passieren, ständige Aufmerksamkeit in der Konfiguration zu diesem Zeitpunkt nicht zur Verfügung.
mainApp.constant("configParam", "constant value");
Die folgenden Beispiele stellen mehr als mehrere Dependency Injection-Mechanismus Demonstration.
<html> <head> <meta charset="utf-8"> <title>AngularJS 依赖注入</title> </head> <body> <h2>AngularJS 简单应用</h2> <div ng-app = "mainApp" ng-controller = "CalcController"> <p>输入一个数字: <input type = "number" ng-model = "number" /></p> <button ng-click = "square()">X<sup>2</sup></button> <p>结果: {{result}}</p> </div> <script src="http://apps.bdimg.com/libs/angular.js/1.4.6/angular.min.js"></script> <script> var mainApp = angular.module("mainApp", []); mainApp.config(function($provide) { $provide.provider('MathService', function() { this.$get = function() { var factory = {}; factory.multiply = function(a, b) { return a * b; } return factory; }; }); }); mainApp.value("defaultInput", 5); mainApp.factory('MathService', function() { var factory = {}; factory.multiply = function(a, b) { return a * b; } return factory; }); mainApp.service('CalcService', function(MathService){ this.square = function(a) { return MathService.multiply(a,a); } }); mainApp.controller('CalcController', function($scope, CalcService, defaultInput) { $scope.number = defaultInput; $scope.result = CalcService.square($scope.number); $scope.square = function() { $scope.result = CalcService.square($scope.number); } }); </script> </body> </html>