2014-10-29 15 views
1

我對AngularJS非常新手,如果它是一個基本問題,則很抱歉。Angular JS - 在同一模塊中是否有任何使用服務和工廠的用例

我知道服務和工廠用於做幾乎相同的事情。它們用於獲取外部數據。

但是,是否有任何使用情況下,我們應該使用在同一個角度模塊?只是好奇,因爲我正在通過其中一個github項目,並意識到他們同時使用同一個模塊的服務和工廠。做這件事的好處是什麼?

+0

什麼是結束服務和工廠有什麼不同? – 2014-10-29 16:19:23

+0

查看http://stackoverflow.com/questions/15666048/service-vs-provider-vs-factory?rq=1 – mccainz 2014-10-29 17:03:10

回答

0

沒有實際的區別,除非你更喜歡用另一種方式打字。我通常使用的服務,因爲我喜歡寫

this.myFunk = function(){...} 

超過

myFunk: function(){....} 

無論你喜歡打字是最好的方式。

這是一個偉大的閱讀,將澄清一些工廠,服務和供應商之間的差異(它們具有不同的使用情況下比工廠和服務):

http://tylermcginnis.com/angularjs-factory-vs-service-vs-provider/

對不起,只是重新閱讀你的問題。據我所知,在一個模塊中使用兩者都沒有實際的理由,因爲它們完成同樣的事情。我認爲在同一模塊中不使用服務和工廠的唯一原因是代碼中的一致性。

+1

雖然,我明白你在說什麼,我沒有明白爲什麼要做3件不同的事情一樣的東西。 – SomeUiDev 2014-10-30 16:16:23

0

我認爲他們最初想讓那些喜歡new的人和那些不開心的人。

我們個人會用.factory()和喜歡使用Revealing Module Pattern,以便一眼就可以很容易地看到該服務/工廠可用的方法/屬性。

https://github.com/johnpapa/angularjs-styleguide#factories

這可以與具有遍佈滾動試圖找到您可以從「服務」叫什麼

/* avoid */ 
function dataService() { 
    var someValue = ''; 
    function save() { 
    /* */ 
    }; 
    function validate() { 
    /* */ 
    }; 

    return { 
     save: save, 
     someValue: someValue, 
     validate: validate 
    }; 
} 

改用此

/* recommended */ 
function dataService() { 
    var someValue = ''; 
    var service = { 
     save: save, 
     someValue: someValue, 
     validate: validate 
    }; 
    return service; 

    //////////// 

    function save() { 
     /* */ 
    }; 

    function validate() { 
     /* */ 
    }; 
} 
相關問題