2015-09-20 38 views

回答

3

AngularJS中沒有factory組件。一個工廠是一個功能,傳遞給module.factory(),其職責恰恰是創建的服務實例。該工廠僅由Angular調用一次,以創建該服務的唯一實例。這個由工廠函數返回的唯一實例隨後被注入到需要服務的地方。

因此,簡而言之,當你做

app.factory('foo', function() { 
    var service = {}; 
    ... 
    return service; 
}); 

你不是定義工廠。你通過一個工廠函數爲app.factory(),並且這個工廠創建了返回服務實例。 'foo'是服務的名稱。

控制器根本不是單身人士。每次使用ng-controller="FooCtrl"或在某些路由或指令中使用FooCtrl時,會創建一個新的FooCtrl實例。