2015-06-19 67 views
-1

爲什麼我們需要服務或工廠,我們也可以通過製作正常的javascript函數或將控制邏輯寫入控制器本身來做同樣的事情。 例如,當我使用'$ http.get'從服務器獲取json數據時,我可以通過爲它編寫一個單獨的服務來做到這一點,但是爲什麼甚至當我們可以直接在控制器中編寫它的代碼時需要它?Angular JS - 提供商vs控制器

+0

閱讀這篇文章將有所幫助http://kirkbushell.me/when-to-use-directives-controllers-or-services-in-angular/ –

+0

那麼每個框架都是用特定的語言編寫的,所以顯然你可以沒有它,完成框架所做的一切。 – Mimu

回答

1

在深入挖掘Angular之前,這是一個很好的問題,因爲了解這些部分將使您能夠編寫良好的Angular代碼,而不僅僅是因爲您可以做一些事情。
http://i.stack.imgur.com/BKl1Y.jpg 這是一個良好的視覺Angular作爲MVC。 你的問題的簡單答案是,服務應該通過你的控制器傳遞信息到你的各種頁面和路線。在這些視圖中共享的所有信息邏輯都屬於該服務。控制器將這些信息從視圖傳遞到服務並從中傳遞。本地信息和邏輯不需要更廣泛範圍的視圖可保留在控制器中。這是使Angular成爲一個強大框架的清晰分離。

+0

謝謝,這有助於... –

+0

MVC架構也有助於更快的頁面加載....因爲邏輯是在不同的地方? –

+0

我不知道有足夠的回答,但有一個很好的地方可以開始尋找答案,這個文檔介紹角度應用程序是如何引導的。 https://docs.angularjs.org/api/ng/directive/ngApp – SpaceJam