インターネット上のさまざまなリソースから角度を学ぶと、本当に混乱します。誰もがさまざまな種類のパターンを使用して関数を記述しています。この.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を作成しました。どちらが正しい/好ましい方法か教えてください。