2

インターネット上のさまざまなリソースから角度を学ぶと、本当に混乱します。誰もがさまざまな種類のパターンを使用して関数を記述しています。この.provider の概念に光を当ててください

4つの異なるパターンで試し.providerましたが、すべて機能しています

パターンA:内部のすべての機能を使用return

app.provider('other', function() {
    name ="Default";
    return {
        $get: function () {
                return {
                    sayHello: function () { console.log('provider example say my name is :' + name )}
                }
        },
        setName: function (newName) {
            name = newName;
        }
    };
}); 

パターン B :this $get と他のメソッドの使用と相違

app.provider('other', function() {
    this.name ="Default";
    this.$get = function () {
        var name = this.name;
        return {
            sayHello: function () { console.log('provider example say my name is :' + name )}
        };
    };

    this.setName = function(name) {
        this.name = name;
    };
});

パターン C :[ ] return を持つ関数の直前にarray を使用している場所も見つかりました

this.$get = [function () {
        var name = this.name;
        return {
            sayHello: function () { console.log('provider example say my name is :' + name )}
        }
    }];

UPADTE

パターン D: .factory を使用し、次にfunctionNameProvider.$get.methodName()を .config で使用

app.factory('alpha', function(){
        var c = ['Cadbury','Perk','Dairy Milk'];
        return {
            sayHello: function() { console.log('Hello, I am from Provider');},
            getAllData: function() { return c; }
        };
});

それから

app.config(['alphaProvider',function(alphaProvider) {
 console.group('Checking Factory Pattern');
 alphaProvider.$get().sayHello();
 var cdata = alphaProvider.$get().getAllData();
 console.log(cdata);
 console.groupEnd();
}]);

同じためにjsfiddleを作成しました。どちらが正しい/好ましい方法か教えてください。

4

1 に答える 1