控制器
- 一般使用[name]Ctrl命名。
- 理解依賴注入
- 一個angular應(yīng)用程序有多個組件(控制器、過濾器、指令)組成。
- module對象定義方法返回的結(jié)構(gòu)仍然是module對象,有利于鏈?zhǔn)骄幊獭?/li>
- 作用:增強(qiáng)視圖,
- 本質(zhì):是一個函數(shù),初始化作用域?qū)ο?,為作用域?qū)ο筇砑宇~外的功能。
- 當(dāng)我們在頁面上創(chuàng)建一個新的控制器時, AngularJS會生成并傳遞一個新的$scope給這個控
制器??梢栽谶@個控制器里初始化$scope。由于AngularJS會負(fù)責(zé)處理控制器的實例化過程,我
們只需編寫構(gòu)造函數(shù)即可。 - 保持短小精悍
指令
- 內(nèi)置指令
- 自定義指定 ---module.directive
- 自定義指定函數(shù)的參數(shù)是scope,不帶$。
定義值
- module.value
使用模塊生命周期進(jìn)行工作
作用域
- 也叫視圖模型。包含了視圖渲染所需的功能和數(shù)據(jù),他是所有視圖的源頭。
- 生命周期:創(chuàng)建,鏈接,更新,銷毀
- ng-controller和ng-repeat都會創(chuàng)建自己的子作用域并且附加到dom上。
控制器嵌套(作用域包含作用域)
- 父級作用域 $rootscope
- 特例:在指令內(nèi)部創(chuàng)建的作用域稱之為孤立作用域。
- 除了孤立作用域,所用的作用域都是從父作用域繼承而來
表達(dá)式
- 表達(dá)式和eval(javascript)非常相似,但是由于表達(dá)式由AngularJS來處理,它們有以下顯
著不同的特性:
所有的表達(dá)式都在其所屬的作用域內(nèi)部執(zhí)行,并有訪問本地$scope的權(quán)限;
如果表達(dá)式發(fā)生了TypeError和ReferenceError并不會拋出異常;
不允許使用任何流程控制功能(條件控制,例如if/eles);
可以接受過濾器和過濾器鏈。