-4

オンラインで多くの回答があることがわかりました。ここでは、スタック オーバーフローを参照してください。しかし、3つすべてが同じ機能セットを実行できるため、どのシナリオでどれを使用するかについて明確にする人はいませんか?

どうか明らかにしてください。

4

1 に答える 1

1

プロバイダーは構成可能なサービスです。Fooでサービスを作成すると、ブロック内でprovider()を使用できます。FooProviderconfig()

angular.module('MyApp', [])
    .provider('Foo', function () {
        ...
    })
    .config(function (FooProvider) {
        FooProvider.something('bar');
    })
    .run(function (Foo) {
        ...
    });

これを何に使用するかの簡単な例については、 を参照してください$logProvider

...Providerサービスに構成可能変数が必要ない場合は、factory()またはservice()メソッドを使用すると、複雑なプロバイダーのセットアップを行う必要がないため、サービスを簡単に作成できます。factory/serviceは、プロバイダーが必要ない場合の簡略化された便利なコンストラクターです。

との違いはfactory、でインスタンス化する「クラス」を想定しているのに対し、 は典型的なコールバック関数servicefactory受け入れることです。例えば:servicenew

// Javascript "class"
function Foo() {
    ...
}
Foo.prototype.bar = ...;

angular.module('MyApp', [])
    .service('Foo', Foo)
    .factory('Bar', function () {
        ...
    })
    .run(function (Foo, Bar) {
        ...
    });

プロバイダーまたはプロバイダーレス サービスの記述方法の詳細については$provide、 およびガイドを参照してください

于 2016-01-29T09:27:28.860 に答える