2014-01-22 210 views
0

我開始在AngularJS中看到人們正在討論「service()vs factory()」dilema,但我找不到有關第一個文檔的任何文檔。爲什麼service()方法沒有官方文檔?

那麼,我們應該強制自己使用工廠()嗎?或者它就像一個別名?

在此先感謝

+1

看到這篇文章:http://stackoverflow.com/questions/14324451/angular-service-vs-angular-factory –

回答

2

有些語句我希望在開始使用angular時閱讀過。

  • 提供者是獲取new ed的函數。並且可以在該狀態下注入配置塊。

    當它的時間被使用(即注入其他地方)$get被調用,並從那裏返回值是您的提供者。

  • 服務是獲取new的函數,這就是你的服務。

  • 工廠是一個獲取並執行new的函數。它的返回值是你的工廠。

這三個不同的術語只是爲了區分它們的創建方法。

每個有一些很好的用途:

  • 提供商: 至於角度庫或API服務
  • 服務的結構包括:一個對象「等類」。可能用於存儲共享應用程序數據
  • 工廠:處理數據獲取和保存的數據檢索對象..也許進入您的服務。
0

將一個類或函數構造函數傳遞給該服務。 Angular會做相當於調用「新」的功能。

傳遞一個函數,將您想要的對象返回工廠。 Angular將採取你傳遞的信息,調用它並使用返回值。

例如,工廠:

function(dep1, dep2) { 
    return { 
     total: dep1.x + dep2.x 
    }; 
} 

服務:

function MyClass(dep1, dep2) { 
    this.total = dep1.x + dep2.x 
} 

廠通常是罰款,除非你使用的是像打字稿或CoffeeScript的語言,引導您更多的課程。

Provider只是一個可以配置一次的服務。換句話說,如果您在config模塊中初始化模塊時需要設置某些內容,請使用提供程序。這允許您在配置存儲爲要使用的對象之前調整配置。

讓我知道如果這回答你的問題!

相關問題