AngularJS之Scope及Controller
前言
之前有接觸過基本的AngularJS,未過多涉及,於是乎本系列我們來著重講講AngularJS,對AngularJS中重要的幾大內容進行梳理並進行一些小的例子的書寫。在之前專案過程中用到過avalon,但是avalon並未被廣泛使用也就放棄了,至於孰最輕量,效能更好作為非專業的我就不妄下結論,lz只明白一點,業界最流行什麼前端框架,招聘大部分要求會哪些框架,lz才會去學習,當然其中的樂趣也是油然而生,每一次敲程式碼的過程好似在浩瀚大海中探幽一番,別有一番滋味。
簡短介紹
AngularJS也是一種MVVM前端框架,其中的路由、指令、服務、工廠等。它幫助了我們開發前端UI並簡化了一些繁瑣的過程,同時它也恰如其分的支援客戶端的單元測試。它涉及到Model、View、Controller。當AngularJS應用程式被啟動時,其Model、Controller、View以及HTML文件都會被載入到使用者的裝置上,最終執行在使用者裝置的硬體中。至於Model、View、Controller這三者之間的聯絡,我們看如下圖便知。
HelloWorld
貌似每學一門新的語言或者框架首先都會想到的是和這個世界打個招呼,下面我們利用AngularJS和這個世界來打個招呼。
(1)頁面定義模組然後獲取模組
var app = angular.module('myApp', []);
(2)定義控制並獲取該控制器進行對應的賦值
app.controller('ctrl', ['$scope', function($scope){ $scope.greeting = {text:"Hello"}; }])
(3)UI頁面
{{greeting.text}},World
最終結果如下:
(1)模組:AngularJS中的module作為Angular應用程式的入口點。那模組從何而來呢?這裡不做過多探討,涉及到依賴逐入的概念。依賴逐入是AngularJS中主要的優點之一,在DI作為一種設計模式被定義在應用程式中作為配置的一部分,如此一來,無需我們手動去建立,當應用程式首次啟動時,DI會自動載入模組依賴。
(2)模型類:拿MVC類比,我們透過模型來獲取資料,此時我們必須定義模型類,同理在大多數JavaScript客戶端框架中也會要求我們建立模型類,但是在AngularJS中這種情況不會發生,在AngularJS中有一個
s c o p e 對 象 , 此 對 象 用 來 存 儲 模 型 類 , S c o p e s 被 附 加 到 D O M 元 素 上 , 我 們 可 以 通 過 使 用 數 據 屬 性 " tabindex="0" id="MathJax-Element-1-Frame" class="MathJax"> 到 scope的物件。$rootScope是AngularJS程式中的父Scope。
(3)控制器:在AngularJS中控制器作為檢視和model的橋樑,在這個控制器這個區域中我們可以放置一個檢視的所有業務邏輯。當應用程式中的業務邏輯被多個控制器所使用時,此時我們應該將業務邏輯放置在AngularJS中的Service(服務)中,當我們需要用到這些業務邏輯時,我們需要在DI的幫助下來獲取這些服務。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4479/viewspace-2808509/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- AngularJS中監視Scope變數以及外部呼叫Scope方法AngularJS變數
- AngularJS中Scope間通訊DemoAngularJS
- AngularJS Directive 隔離 Scope 資料互動AngularJS
- AngularJS 的 scope 選項與繫結策略AngularJS
- 構建自己的AngularJS(1):Scope和DigestAngularJS
- 控制檯獲取AngularJS某個元素的ScopeAngularJS
- angularjs的ng-repeat指令下的scope作用域AngularJS
- angularjs中使用$scope.$watch監控物件模型的變化AngularJS物件模型
- AngularJS中的ng-controller是什麼東東AngularJSController
- angularJS directive中的controller和link function辨析AngularJSControllerFunction
- AngularJS之FilterAngularJSFilter
- fixtrue基礎之scope引數
- AngularJS自定義Directive中link和controller的區別AngularJSController
- AngularJS中使用$parse或$eval在執行時對Scope變數賦值AngularJS變數賦值
- AngularJS核心之DirectiveAngularJS
- AngularJS: 使用ng-option生成下拉框並在controller呼叫AngularJSController
- angularJS之$apply()方法AngularJSAPP
- angularjs之$timeout指令AngularJS
- Fresco原始碼分析之Controller原始碼Controller
- AngularJS們的SEO之殤AngularJS
- angularjs庫及ionic庫下載地址AngularJS
- AngularJS 自定義 Directive 及程式碼示例AngularJS
- 【轉】ionic之AngularJS手勢事件AngularJS事件
- Laravel scope用法Laravel
- 體驗jQuery和AngularJS的不同點以及AngularJS的迷人之處jQueryAngularJS
- kubernetes實踐之四十八:Service Controller與Endpoint ControllerController
- 新手請教:action 中 scope="session"之後怎麼用?Session
- AngularJS 1.x系列:AngularJS服務-Service、Factory、Provider、Value及Constant(5)AngularJSIDE
- Linux晶片驅動之SPI ControllerLinux晶片Controller
- angular中的scopeAngular
- RUBY RUPORT實踐—Ruport::Controller及Template應用Controller
- express框架路由配置及controller自動載入Express框架路由Controller
- Angularjs——初識AngularJSAngularJS
- angularJS之$watch、$digest和$apply方法AngularJSAPP
- scope="session"和scope="request"--丟擲異常非常的bug+垃圾Session
- Kubernetes安裝之七:配置master之controller-managerASTController
- 走進AngularJs(九)表單及表單驗證AngularJS
- __dirname is not defined in ES module scope