AnglarJSのいくつかのProvidersの違いについてまとめました。
https://xebia.com/blog/differ…
プロバイダーとは
AnglarJS文書のproviderに対する定義:
プロバイダーは$get()メソッドを持つオブジェクトです。injectorは$getメソッドを呼び出して新しいserviceを作成する例を示します。プロバイダーは他にもいくつかの方法があります。プロバイダーを配置することができます。
AnglarJSは$provideを使って新しいプロバイダーを登録します。プロバイダーは基本的に新しいインスタンスを作成しますが、各プロバイダーは一回だけ作成します。provideは6つの方法でプロバイダーを作成します。簡単なコード例でそれぞれ彼らを説明します。
6つの方法は以下の通りです constant value service factory decorator provider コンサート
constantはinjectにどこにでも行ける。constantはdecoratorに阻止されないということは、constantの値がいつまでも変わらないということを意味しています。
valueは簡単に注入できる値です。string、number、functionでもいいです。
constantとは違って、valueはconfigrationsに注入されませんが、valueはdecoratorsにブロックされます。
serviceは注入できる構造関数である。あなたが望むなら、関数で必要な依存性を指定できます。
serviceは一例で、一回だけ作成されます。servicesは、データを共有するなど、コントローラ間でデータを転送する良い方法です。
factoryは注入可能な関数です。
serviceと同じ点:factoryも一例です。この関数で依存を指定することもできます。
factoryは普通の関数を注入します。AngullarJsはこの関数を呼び出します。serviceはコンストラクションを注入します。
serviceは、newを呼び出して新しいオブジェクトを作成するコンストラクタです。factoryを使って、この関数を返してほしいものを返してもいいです。
factoryは$get方法しかないプロヴィダーです。
decoratorは他のprovidersを修正またはパッケージすることができますが、constantは装飾されません。
providerはすべてのプロバイダーの中で最も複雑で、複雑なcreation関数と配置オプションがあります。
providerは実際に配置可能なfactoryです。プロバイダーはオブジェクトまたは構造関数を受け入れます。
すべてのプロバイダーは一度だけ実装されますので、彼らは一例です。
constantを除いて、他のプロバイダーは全部decorcatedになります。
constantは値です。どこにでも注入できます。その値は変えられません。
valueは簡単な注入可能な値です。
serviceは注入可能な構造関数である。
factoryは注入可能な関数です。
decoratorはconstantを除いて、他のprovidersを修正またはパッケージすることができます。
providerは配置可能なfactoryです。
ここで、AnglarJSのいくつかのProvidersの違いについてまとめた文章を紹介します。AnglarJSのProvidersの違いについては、以前の文章を検索したり、以下の関連記事を見たりしてください。これからもよろしくお願いします。
プロバイダーとは
AnglarJS文書のproviderに対する定義:
プロバイダーは$get()メソッドを持つオブジェクトです。injectorは$getメソッドを呼び出して新しいserviceを作成する例を示します。プロバイダーは他にもいくつかの方法があります。プロバイダーを配置することができます。
AnglarJSは$provideを使って新しいプロバイダーを登録します。プロバイダーは基本的に新しいインスタンスを作成しますが、各プロバイダーは一回だけ作成します。provideは6つの方法でプロバイダーを作成します。簡単なコード例でそれぞれ彼らを説明します。
6つの方法は以下の通りです
constantはinjectにどこにでも行ける。constantはdecoratorに阻止されないということは、constantの値がいつまでも変わらないということを意味しています。
var app = angular.module('app', []);
app.config(function ($provide) {
$provide.constant('movieTitle', 'The Matrix');
});
app.controller('ctrl', function (movieTitle) {
expect(movieTitle).toEqual('The Matrix');
});
AnglarJSはより簡便な方法でconstantを作成します。上の3行から5行のコードを書き換えることができます。
app.constant('movieTitle', 'The Matrix');
Valuevalueは簡単に注入できる値です。string、number、functionでもいいです。
constantとは違って、valueはconfigrationsに注入されませんが、valueはdecoratorsにブロックされます。
var app = angular.module('app', []);
app.config(function ($provide) {
$provide.value('movieTitle', 'The Matrix')
});
app.controller('ctrl', function (movieTitle) {
expect(movieTitle).toEqual('The Matrix');
})
valueを作成する簡単な方法:
app.value('movieTitle', 'The Matrix');
サービスserviceは注入できる構造関数である。あなたが望むなら、関数で必要な依存性を指定できます。
serviceは一例で、一回だけ作成されます。servicesは、データを共有するなど、コントローラ間でデータを転送する良い方法です。
var app = angular.module('app' ,\[\]);
app.config(function ($provide) {
$provide.service('movie', function () {
this.title = 'The Matrix';
});
});
app.controller('ctrl', function (movie) {
expect(movie.title).toEqual('The Matrix');
});
サービスの簡単な作成方法:
app.service('movie', function () {
this.title = 'The Matrix';
});
Factoryfactoryは注入可能な関数です。
serviceと同じ点:factoryも一例です。この関数で依存を指定することもできます。
factoryは普通の関数を注入します。AngullarJsはこの関数を呼び出します。serviceはコンストラクションを注入します。
serviceは、newを呼び出して新しいオブジェクトを作成するコンストラクタです。factoryを使って、この関数を返してほしいものを返してもいいです。
factoryは$get方法しかないプロヴィダーです。
var app = angular.module('app', []);
app.config(function ($provide) {
$provide.factory('movie', function () {
return {
title: 'The Matrix';
}
});
});
app.controller('ctrl', function (movie) {
expect(movie.title).toEqual('The Matrix');
});
factoryを作成する簡単な方法:
app.factory('movie', function () {
return {
title: 'The Matrix';
}
});
Decoratordecoratorは他のprovidersを修正またはパッケージすることができますが、constantは装飾されません。
var app = angular.module('app', []);
app.value('movieTitle', 'The Matrix');
app.config(function ($provide) {
$provide.decorator('movieTitle', function ($delegate) {
return $delegate + ' - starring Keanu Reeves';
});
});
app.controller('myController', function (movieTitle) {
expect(movieTitle).toEqual('The Matrix - starring Keanu Reeves');
});
プロバイダーproviderはすべてのプロバイダーの中で最も複雑で、複雑なcreation関数と配置オプションがあります。
providerは実際に配置可能なfactoryです。プロバイダーはオブジェクトまたは構造関数を受け入れます。
var app = angular.module('app', []);
app.provider('movie', function () {
var version;
return {
setVersion: function (value) {
version = value;
},
$get: function () {
return {
title: 'The Matrix' + ' ' + version
}
}
}
});
app.config(function (movieProvider) {
movieProvider.setVersion('Reloaded');
});
app.controller('ctrl', function (movie) {
expect(movie.title).toEqual('The Matrix Reloaded');
});
締め括りをつけるすべてのプロバイダーは一度だけ実装されますので、彼らは一例です。
constantを除いて、他のプロバイダーは全部decorcatedになります。
constantは値です。どこにでも注入できます。その値は変えられません。
valueは簡単な注入可能な値です。
serviceは注入可能な構造関数である。
factoryは注入可能な関数です。
decoratorはconstantを除いて、他のprovidersを修正またはパッケージすることができます。
providerは配置可能なfactoryです。
ここで、AnglarJSのいくつかのProvidersの違いについてまとめた文章を紹介します。AnglarJSのProvidersの違いについては、以前の文章を検索したり、以下の関連記事を見たりしてください。これからもよろしくお願いします。