再利用可能なシングルトンオブジェクトであるサービスを提供します。これらを使用して、ユーザーのAngularJSアプリケーション間でコードを共有できます。それらは、ディレクティブ、フィルター、およびに注入することもできます。 。この記事では、AngularJSのファクトリについて理解します。
AngularJSのファクトリーとは何ですか?
Factoryは、値を返すために使用される角度関数です。オンデマンドの値は、サービスまたはコントローラーが必要とするときはいつでも、工場によって作成されます。値が作成されると、すべてのサービスとコントローラーで再利用されます。
工場を利用してサービスを作ることができます。
サービスと工場の違い
- サービスは次の方法で定義できます。
app.service( 'FirstService'、function(){
this.sayHola = function(){
console.log( 'こんにちは')
}
})
.service()メソッドは、サービスを定義する名前と関数を受け取ります。次の方法で注入できます。
UbuntuにHadoopを設定する
app.controller( 'AppController'、function(FirstService){
FirstService.sayHello()//ログ 'Hello'
})
- 一方、ファクトリは次のように定義できます。
app.factory( 'FirstService'、function(){
戻り値{
sayHola:関数(){
console.log( 'こんにちは')
}
}
})
factory()は、ファクトリを定義する名前と関数を受け取るメソッドでもあります。サービスを注入するのと同じ方法で注入できます。サービスと工場の主な違いは、 オブジェクトリテラルを返す 工場の場合(これを使用する代わりに)。 その理由は、サービスはコンストラクター関数であるのに対し、ファクトリはそうではないためです。
- 理解を深めるために、ファクトリfunction()を見てみましょう。
function factory(name、factFn、enforce){
プロバイダーを返す(名前、{
$ get:強制!== false? EnforceReturnValue(name、factFn):factFn
})
}
上記のコードでは、名前と渡されたファクトリ関数を取ります。同じ名前のプロバイダーと、$ get
メソッド(ファクトリ関数)。これは、インジェクターが特定の依存関係を要求されるたびに、インジェクターがプロバイダーにそのサービスのインスタンスを要求する理由です。$ get()
方法。
- FirstServiceを挿入すると、ファクトリ関数が呼び出されます。
FirstServiceProvider。$ get()//サービスのインスタンスを返します
- サービスコードの場合:
関数service(名前、コンストラクター){
リターンファクトリ(名前、['$インジェクター'、関数($インジェクター){
$ injector.instantiate(コンストラクター)を返します
}])
}
電話するときservice()、factory()
実際に呼ばれているものです。これは、コンストラクターによってオブジェクトをインスタンス化するようにインジェクターに要求する関数を渡すことによって行われます。簡単に言うと、サービスは事前定義されたファクトリを呼び出します。
$ injector.instantiate()
を呼び出しますObject.create()
コンストラクター関数を使用します。それが理由です この サービスで使用されます。
JavaScriptのファクトリの例
var firstModule = angle.module( 'firstModule'、[])
firstModule.factory( 'firstFactory'、function(){
'値'を返す
})
firstModule.controller( 'FirstController'、function($ scope、firstFactory){
console.log(firstFactory)
})
工場への値の注入
次の方法で値をファクトリに注入できます。
var firstModule = angle.module( 'firstModule'、[])
firstModule.value( 'numberValue'、29)
firstModule.controller( 'FirstController'、function($ scope、numberValue){
console.log(numberValue)
})
注意: ファクトリ関数自体ではなく、ファクトリ関数によって生成された値が注入されることに注意する必要があります。
これで、AngularJSのこのファクトリの記事は終わりです。工場とは何か、サービスとの違いをご理解いただければ幸いです。
C一体 25万人以上の満足した学習者のネットワークを持つ信頼できるオンライン学習会社であるEdurekaが世界中に広がっています。 Angularは、スケーラブルでエンタープライズなパフォーマンスのクライアント側Webアプリケーションを作成するために使用されるJavaScriptフレームワークです。 Angularフレームワークの採用率が高いため、アプリケーションのパフォーマンス管理はコミュニティ主導であり、間接的により良い雇用機会を促進しています。 Angular認定トレーニングは、エンタープライズアプリケーション開発に関するこれらすべての新しい概念をカバーすることを目的としています。