故事的開始是Angular的作者覺得GWT太麻煩,所以做了Angular,然後Angular紅了GWT才想做自己的Singular,做好都不知道何時了(遠目),在玩Ionic時,因為是建立在Angular的架構上,所以也要順手了解一下Angular,看了一下的作法,不難了解為什麼會有很多人推,因為給了一些限制,而這些限制能避免經驗不足的開發者,將專案搞到難以維護的狀態,總之Angular提供了模組(module)跟providers的概念,強制使用者要照著用,本以為注入(injection)的概念背後會有對記憶體更棒的優化,後來發顯似乎沒有...,但一致化的限制,反而帶來的更好的理解與維護性,雖然有更多我想要的特性是在TypeScript中。
Templates 就是用來放View
Controllers 用來放業務邏輯
Services 用來放會共用的功能
本來以為module是為了引入命名空間(Namespace)的概念,結果看網路文章表示,也沒有.....也難怪會積極做Angular 2了XD,目前也還在考慮要不要跟TypeScript搭著用,雖然會更好維護,但工也會多花一些,也許未來遷移到Angular 2在轉換也不遲。
module的概念
angular.module(name, requires)
angular.module('app', ['app.conrtollers', 'app.services']);
angular.module('app.services') .service('WebService', function () { var self = this; self.getName = function () { return 'John'; }; });
.controller(name, constructor)
依賴注入
angular.module('app.conrtollers', ['app.services']) .controller('MainCtrl', function ($scope, WebService) { // Angular會初始化方法,並回傳給我們 // 類似 new WebService() $scope.name = WebService.getName(); });
service跟factory有甚麼差別? 一個是系統幫你new,一個是你自己new完,傳出來用....個人覺得一樣意思。
一開始只要稍微理解一下,module、controller、service,就可以做很多事情了。
參考
angular之service、factory預provider區別 - xlgps.com - http://goo.gl/oCVYp5
AngularJS 之Factory vs Service vs Provider - 技術翻譯- 開源中國社區 - http://goo.gl/X8HUwy
AngularJS中的Provider們:Service和Factory等的區別- savokiss的專欄- SegmentFault - https://goo.gl/BrTqPc
物件的使用 - JavaScript | MDN - https://goo.gl/PWN2Aq
留言
張貼留言
有什麼想法歡迎跟我們分享