依存関係注入は、ハードコンポーネント内の依存関係のエンコードを置き換えるコンポーネントに与えられるソフトウェア設計パターンです。これにより、依存関係の配置、依存関係の構成からコンポーネントが削減されます。これにより、コンポーネントが再利用可能になり、維持され、テストされます。
AngularJSは、最高の依存噴射メカニズムを提供します。互いに依存する注射可能なコアコンポーネントを提供します。
価値
工場
仕える
プロバイダー
いつも
価値
値は、構成フェーズコントローラー中に値を渡すために使用される単純なJavaScriptオブジェクトです。
// modulevar mainapp = angular.module( "mainapp"、[]); // data.mainapp.value( "defaultinput"、5); $ scope.number = $ scope = calcservice.square.square = function(){$ scope.result.square($ scope.number);工場
工場は、関数の値を返すために使用されます。サービスやコントローラーが必要とするたびに、需要に応じて価値を生み出します。通常、工場関数を使用して、対応する値を計算して返します
// modulevar mainapp = angular.module( "mainapp"、[]); // 2つのnumbersmainapp.factory( 'mathservice'、function(){var factory = {}; multiply.multiply = return = function(a *){a *); //工場の「MathService」をサービスに注入して、Factory.mainApp.Service( 'calcservice'、function(mathservice){this.square = function(a){return mathservice.multiply(a、a);}}); ...仕える
サービスは、特定のタスクを実行するための一連の関数オブジェクトを含む単一のJavaScriptです。このサービスは、サービス()関数を使用し、コントローラーの定義に注入します。
// modulevar mainapp = angular.module( "mainapp"、[]); ... // number.mainapp.service( 'calcservice'、function(mathservice){this.square = function(a){return mathservice.mather.ervice.multiply(a); multir(a); a); a); Controllermainapp.Controller( 'calccontroller'、function($ scope、calcservice、defaultinput){$ scope.number = defaultput; $ scope.result = calcservice.square($ scope.number); $ scope.square = function(){$ scope.number($ scope.}プロバイダー
プロバイダーは、AngularJS内部作成プロセスの構成フェーズ中に(AngularJSブーツ自体のように)サービス、工場などを使用します。以下のスクリプトは作成に使用できます。事前にMathServiceを作成しました。プロバイダーは、価値/サービス/工場を返すための特別な工場メソッドとget()方法です。
// modulevar mainapp = angular.module( "mainapp"、[]); ... // number.mainapp.configの正方形を返す方法を定義するプロバイダーを使用してサービスを作成します。 {bを返す}絶え間ない
定数は、位相値を構成することで事実を考慮するために使用されます。構成フェーズでは値を渡すことはできません。
MainApp.Constant( "configparam"、 "constant value");
例
次の例では、上記のすべての指示を示します。
testangularjs.html
<html> <head> <title> angularjs依存関係噴射</ittitle> </head> </h2> angularjsサンプルアプリケーション</h2> <div-app = "mainapp" ng-controller = "calccontroller"> <> necting number:<input type = "ng-model ="/> <button ng-click = "square()"> x <sup> 2 </sup> </button> <p> result:{{result}} </p> </div> <スクリプトsrc = "http://ajax.googleapis.com/ajax/libs/angularjs/1.2.2.15/angular.min.js> <> <> <> Angular.module( "mainApp"、[]); mainapp.config(function($ witrent){$ sultion.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.number($ scope.number); </script> </body> </html>結果
WebブラウザでTextangularjs.htmlを開きます。結果は次のとおりです。
上記は、AngularJS依存関係の注入のための情報の収集です。今後も関連情報を追加し続けます。このサイトへのご支援ありがとうございます!