2
它說,Angular JS服務是在應用程序中僅實例化一次的單例對象。 就實例而言,它與Angular JS工廠或控制器有何不同?Angular js - 服務是單身對象意味着什麼?
答案與小提琴將有所幫助。
它說,Angular JS服務是在應用程序中僅實例化一次的單例對象。 就實例而言,它與Angular JS工廠或控制器有何不同?Angular js - 服務是單身對象意味着什麼?
答案與小提琴將有所幫助。
AngularJS中沒有factory
組件。一個工廠是一個功能,傳遞給module.factory()
,其職責恰恰是創建的服務實例。該工廠僅由Angular調用一次,以創建該服務的唯一實例。這個由工廠函數返回的唯一實例隨後被注入到需要服務的地方。
因此,簡而言之,當你做
app.factory('foo', function() {
var service = {};
...
return service;
});
你不是定義工廠。你通過一個工廠函數爲app.factory()
,並且這個工廠創建了和返回服務實例。 'foo'
是服務的名稱。
控制器根本不是單身人士。每次使用ng-controller="FooCtrl"
或在某些路由或指令中使用FooCtrl時,會創建一個新的FooCtrl
實例。