从互联网上的不同资源中学习角度确实令人困惑。每个人都使用不同类型的模式来编写函数。请对这个 .provider概念有所了解
我尝试.provider
了 4 种不同的模式,并且都在工作
模式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 :[ ]
也可以在返回的函数之前使用数组找到某个地方
this.$get = [function () {
var name = this.name;
return {
sayHello: function () { console.log('provider example say my name is :' + name )}
}
}];
更新
模式 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,请告诉我哪种方法是正确/首选的?