爲什麼我們需要服務或工廠,我們也可以通過製作正常的javascript函數或將控制邏輯寫入控制器本身來做同樣的事情。 例如,當我使用'$ http.get'從服務器獲取json數據時,我可以通過爲它編寫一個單獨的服務來做到這一點,但是爲什麼甚至當我們可以直接在控制器中編寫它的代碼時需要它?Angular JS - 提供商vs控制器
回答
在深入挖掘Angular之前,這是一個很好的問題,因爲了解這些部分將使您能夠編寫良好的Angular代碼,而不僅僅是因爲您可以做一些事情。
http://i.stack.imgur.com/BKl1Y.jpg 這是一個良好的視覺Angular作爲MVC。 你的問題的簡單答案是,服務應該通過你的控制器傳遞信息到你的各種頁面和路線。在這些視圖中共享的所有信息邏輯都屬於該服務。控制器將這些信息從視圖傳遞到服務並從中傳遞。本地信息和邏輯不需要更廣泛範圍的視圖可保留在控制器中。這是使Angular成爲一個強大框架的清晰分離。
謝謝,這有助於... –
MVC架構也有助於更快的頁面加載....因爲邏輯是在不同的地方? –
我不知道有足夠的回答,但有一個很好的地方可以開始尋找答案,這個文檔介紹角度應用程序是如何引導的。 https://docs.angularjs.org/api/ng/directive/ngApp – SpaceJam
- 1. 未知提供商:$控制器
- 2. 錯誤:無路由器提供商!在injectionError(core.es5.js:1231)[angular]
- 3. In_memory vs定製認證提供商
- 4. Angular 2 RC4路由器提供商
- 5. Nativescript Angular - 無路由器提供商! (RC4 - 路由器3.0.0-beta.2)
- 6. Angular 4添加供應商js文件
- 7. 擴展服務提供商(提供商)
- 8. Angular js Intellisense不能在VS 2015控制器中工作
- 9. 從控制器充當過濾器提供商
- 10. Angular js 1.0 vs Angular js 2.0
- 11. 未知供應商factoryprovider < - 工廠< - 控制器角js
- 12. sylius控制器定製不覆蓋供應商控制器
- 13. 多個提供商Angular 2測試牀
- 14. Angular 2 + Openlayers沒有SourceVectorComponent的提供商
- 15. 未知提供商錯誤Angular
- 16. Angular 2全球服務提供商
- 17. Angular - Karma - ngrx - 沒有店鋪提供商
- 18. Laravel 5.4:將自定義服務提供商控制器
- 19. 春季社交:提供商登錄控制器
- 20. AngularJS未知的提供商 - 對於控制器
- 21. Angular JS Route:連接多個控制器
- 22. Angular JS無法註冊控制器
- 23. Angular js沒有找到控制器?
- 24. Angular JS - 控制器未定義
- 25. Angular JS單控制器多視圖
- 26. Angular JS /數據綁定/控制器
- 27. Angular js是控制器沒有加載
- 28. Angular js多個或單個控制器?
- 29. Angular JS控制器範圍,多視圖
- 30. Angular JS指令特定的控制器和父控制器
閱讀這篇文章將有所幫助http://kirkbushell.me/when-to-use-directives-controllers-or-services-in-angular/ –
那麼每個框架都是用特定的語言編寫的,所以顯然你可以沒有它,完成框架所做的一切。 – Mimu