2014-11-21 57 views
1

比方說,我有一個名爲lookup的提供商。它的用法是這樣的:哪個函數語法的角色提供者?

.controller('lookupCtrl', ['lookup', function(lookup) { 
    this.values = lookup('monkey'); 
}]); 

什麼是lookup?這是一個service()?這是一個factory()? A value()

回答

0

在這種特殊情況下,它可以是其中的任何一種。

如果您創建了一個普通的普通的JavaScript對象,然後使用值提供程序命名對象「查找」,則查找可能是一個值。儘管一個值通常是一個簡單的類型,但它可能是一個對象,而這會起作用。

如果您使用工廠提供程序,查找也可能是工廠,在這種情況下,您可以指定一個返回對象的函數。您返回的對象與上述請求「查找」的例程中注入的完全相同的對象

最後,查找也可以是角度服務。如果你這樣做了,那麼服務提供者會指定一個返回一個「新」對象的函數。所以你返回的東西將是Angular將會「新」的一個函數,並且這個函數的結果將被傳遞給請求「查找」實例的任何人。請注意,即使在這種情況下,Angular也只有一次實例化您的服務。工廠和服務之間的區別是微妙的。想想一個服務返回一個角度實例化一次的「類」並重用該實例。並且工廠使用您返回角度的對象。

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 ...看看控制檯輸出。

相關問題