第8節(jié):Angular中的控制器

在介紹完Angular中的表達式后重付,接下來我們再來介紹下Angular中一個重要角色——控制器顷级。其實,在前面的章節(jié)中我們也多次提到它确垫,那么蚪拦,Angular中的控制器到底是什么榴捡?它又能實現(xiàn)哪些功能呢?接下來我們結合示例來逐一進行解析。

控制器的概念

? ? ? ?控制器(controller)在Angular中占有重要的地位抓韩,它是組成前端MVC框架的其中一員,在Angular中踪蹬,控制器的功能是管理頁面的邏輯代碼篷牌。當控制器通過“ng-controller”指令被添加到DOM頁面時,Angular將會通過控制器構造函數(shù)生成一個實體的對象,而在生成這個對象的過程中控硼,$scope對象作為參數(shù)注入其中泽论,并允許用戶訪問$scope對象,這樣一來卡乾,用戶可以通過$scope對象與頁面中的元素進行數(shù)據(jù)綁定翼悴,從而實現(xiàn)數(shù)據(jù)從控制器層到視圖層的過程。

控制器初始化$scope對象

? ? ? ?從上面對控制器的介紹幔妨,我們不難看出鹦赎,控制器的任務就是操作$scope對象,而這種操作具體表現(xiàn)在兩個方面:一是對$scope對象進行初始化误堡,二是為$scope對象添加各種實現(xiàn)邏輯功能的方法古话。我們首先來看第一個功能,初始化$scope對象埂伦。

? ? ? ? ?接下來煞额,我們先通過一個完整的示例來介紹控制器初始化$scope對象的過程。

示例2-4 控制器初始化$scope對象

(1) 功能描述

? ? ? ? 在頁面中沾谜,以應用模塊的方法構建一個控制器對象膊毁,并以內(nèi)聯(lián)聲明方式表明控制器對象依賴于$scope對象提供的服務。在控制器對象中基跑,初始化$scope一個名為“text”的屬性婚温,并與頁面的<span>元素進行數(shù)據(jù)綁定。

(2) 實現(xiàn)代碼

? ? ? ? 新建一個HTML文件2-4.html媳否,加入如代碼清單2-4所示的代碼栅螟。

代碼清單2-4控制器初始化$scope對象

<!doctype html>

<html ng-app="a2_4">

<head>

? ? <title>控制器初始化$scope對象</title>

? ? <script src="../Script/angular.min.js"?

? ? ? ? ? ? type="text/javascript"></script>

</head>

<body>

? ? <div ng-controller="c2_4">

? ? ? ? <span>{{text}}</span>?

? ? </div>

? ? <script type="text/javascript">

? ? ? ? var a2_4 = angular.module('a2_4', []);

? ? ? ? a2_4.controller('c2_4', ['$scope', function ($scope) {

? ? ? ? ? ? $scope.text = 'Hello!Angular';

? ? ? ? }]);

? ? </script>

</body>

</html>

(3) 頁面效果

? ? ? ? 執(zhí)行HTML文件2-4.html篱竭,最終實現(xiàn)的頁面效果如下圖2-4所示:

圖2-4控制器初始化$scope對象

(4) 源碼分析

? ? ? ? 在本示例的源碼中力图,自定義控制器函數(shù)由全局方式改為在Angular模塊下使用 . controller方式創(chuàng)建,這種方式更加強調頁面是一個整體的應用掺逼,控制器可以對應用中的某一個模塊進行管理吃媒。相對于全局方式下的定義,該方式的擴展性和針對性更強吕喘。

在本示例的源碼中赘那,我們首先定義了一個名為“a2_4”的Angular模塊,然后氯质,通過下列代碼募舟,創(chuàng)建了一個名為“c2_4”的控制器:

a2_4.controller('c2_4', ['$scope', function ($scope) {

? ? ? ? ? ? ...代碼塊

}]);

? ? ? ? ?在上述的代碼中,采用內(nèi)聯(lián)注入的方式聲明“c2_4”控制器的構建依賴Angular中的$scope對象闻察,即在構建控制器時拱礁,Angular會自動將$scope對象作為參數(shù)注入到控制器中琢锋。

? ? ? ? ?雖然在構建控制器函數(shù)時,$scope對象已經(jīng)自動注入觅彰,但還是需要對它進行初始化吩蔑,而初始化的方法是通過向該對象添加屬性,在本示例中的代碼如下:

$scope.text = 'Hello填抬!Angular';

? ? ? ? ?采用上述方式也可以添加多個屬性烛芬,被添加的這些屬性在控制器所管理的所有DOM元素中都可以采用數(shù)據(jù)綁定的方式進行訪問,例如飒责, 對于下列代碼:

<div ng-controller="c2_4">

? ? ? ? <span>{{text}}</span>?

</div>

? ? ? ? ?通過元素的“ng-controller”屬性值指定控制器函數(shù)的名稱赘娄,表明該元素中的全部DOM節(jié)點都受控制器管理,然后宏蛉,采用雙花括號的方式綁定控制器的數(shù)據(jù)遣臼,從而最終實現(xiàn)View層數(shù)據(jù)展示的功能。

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末拾并,一起剝皮案震驚了整個濱河市揍堰,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌嗅义,老刑警劉巖屏歹,帶你破解...
    沈念sama閱讀 218,525評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異之碗,居然都是意外死亡蝙眶,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評論 3 395
  • 文/潘曉璐 我一進店門褪那,熙熙樓的掌柜王于貴愁眉苦臉地迎上來幽纷,“玉大人,你說我怎么就攤上這事博敬∮呀” “怎么了?”我有些...
    開封第一講書人閱讀 164,862評論 0 354
  • 文/不壞的土叔 我叫張陵偏窝,是天一觀的道長收恢。 經(jīng)常有香客問我,道長囚枪,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,728評論 1 294
  • 正文 為了忘掉前任劳淆,我火速辦了婚禮链沼,結果婚禮上,老公的妹妹穿的比我還像新娘沛鸵。我一直安慰自己括勺,他們只是感情好缆八,可當我...
    茶點故事閱讀 67,743評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著疾捍,像睡著了一般奈辰。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上乱豆,一...
    開封第一講書人閱讀 51,590評論 1 305
  • 那天奖恰,我揣著相機與錄音,去河邊找鬼宛裕。 笑死瑟啃,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的揩尸。 我是一名探鬼主播蛹屿,決...
    沈念sama閱讀 40,330評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼岩榆!你這毒婦竟也來了错负?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,244評論 0 276
  • 序言:老撾萬榮一對情侶失蹤勇边,失蹤者是張志新(化名)和其女友劉穎犹撒,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體粥诫,經(jīng)...
    沈念sama閱讀 45,693評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡油航,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,885評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了怀浆。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片谊囚。...
    茶點故事閱讀 40,001評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖执赡,靈堂內(nèi)的尸體忽然破棺而出镰踏,到底是詐尸還是另有隱情,我是刑警寧澤沙合,帶...
    沈念sama閱讀 35,723評論 5 346
  • 正文 年R本政府宣布奠伪,位于F島的核電站首懈,受9級特大地震影響滤否,放射性物質發(fā)生泄漏炊甲。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,343評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧野崇,春花似錦乓梨、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春弃舒,著一層夾襖步出監(jiān)牢的瞬間遭笋,已是汗流浹背喂窟。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留央串,地道東北人磨澡。 一個月前我還...
    沈念sama閱讀 48,191評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像质和,于是被迫代替她去往敵國和親稳摄。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,955評論 2 355

推薦閱讀更多精彩內(nèi)容