假设我有一个名为lookup
的提供商。它的使用方式如下:
.controller('lookupCtrl', ['lookup', function(lookup) {
this.values = lookup('monkey');
}]);
什么是lookup
?是service()
吗?是factory()
吗?一个value()
?
答案 0 :(得分:0)
在这种特殊情况下,它可以是任何一种。
如果您创建了一个普通的,普通的JavaScript对象,然后使用Value提供程序,将对象命名为“lookup”,则lookup可以是一个值。即使值通常是一个简单的类型,它也可以是一个对象,这样就可以了。
如果您使用工厂提供程序,lookup也可以是工厂,在这种情况下,您指定一个返回对象的函数。您返回的对象与在上面请求“查找”
的任何例程中注入的对象完全相同最后,查找也可以是角度服务。如果您这样做,服务提供者将指定一个返回“newable”对象的函数。因此,您返回的内容将是Angular将“new”的函数,并且其结果将传递给请求“查找”实例的任何人。请注意,即使在这种情况下,Angular也只会一次实例化您的服务。工厂和服务之间的区别是微妙的。想象一个服务返回一个角度实例化一次的“类”并重用那个实例。并且工厂使用您返回角度的对象。
答案 1 :(得分:0)
答案是" D:以上所有"
作为服务:
.service('myService', function(){
return function(someParam){
console.log(someParam);
};
});
作为工厂:
.factory('myFactory', function(){
return function(someParam){
console.log(someParam);
};
});
作为价值:
.value('myValue', function(){
console.log(arguments);
});
这是Plunkr ...查看控制台输出。