AngularJs內建指令大全
1、ng-model
這個大家都非常熟悉了,就是將表單控制元件和當前作用域的屬性進行繫結。需要注意繫結的scope的範圍(父scope與子scope)。
ng-model主要繫結的元素包括input, select, textarea
ng-model的元素都有ng-valid(可用),ng-invalid 不可用
ng-pristine(使用者為對這個元素進行操作過), ng-dirty(元素的模型發生改變的話)屬性; 這幾個屬性都是布林值;
2、ng-init
用得比較少,該指令被呼叫時會初始化內部作用域。一般不建議使用此引數。
3、ng-app
- 這個是必需的。使用該指令自動啟動一個AngularJS應用。
- ngapp指令指定的應用程式的根元素,通常放置在網頁的根元素如body或html 標籤。
- 只有一個AngularJS應用可以自動引導每個HTML文件。
- 第一ngapp找到該檔案將定義自動引導的根元素的應用。
- 執行多個應用程式在一個HTML檔案,您必須手動引導他們使用angular.bootstrap。
- AngularJS應用不能互相巢狀。
- 你可以指定一個AngularJS模組被用於應用程式的根模組。
- 該模組將被載入到應用程式時,引導到$injector物件中。
- 它應該包含所需的應用程式程式碼,或依賴於將包含程式碼的其他模組的依賴關係。
- 更多資訊見angular.module。
4、ng-controller
這個也是經常用到的,用來定義一個控制器。注意格式
5、ng-form用來定義一個from,通常是用來驗證引數。通常可以和以下標籤一起使用
ng-valid (有效的).
ng-invalid (無效的).
ng-pristine (原始,簡介).
ng-dirty (髒的).
ng-submitted (提交的)
6、ng-disabled
像這種只要出現則生效的屬性,我們可以在AngularJS中通過表示式返回值true/false令其生效。禁用表單輸入欄位。
7、ng-readonly
通過表示式返回值true/false將表單輸入欄位設為只讀。
8、ng-checked
設定是否選中複選框。其中 ng-true-value="''" ng-false-value="''",可用來設定選中時或不選中時對應的值
9、ng-selected
給<select>裡面的<option>用的
10、ng-show/ng-hide
根據表示式顯示/隱藏HTML元素,注意是隱藏,不是從DOM移除(ng-if才是移除),對於大物件的DOM,可以用它,但如果是小物件的DOM,建議使用ng-if
11、ng-change
不是HTML那套onXXX之類的,而是ng-XXX。用來設定input/select等內容發生變化時的事件
12、{{}}
其實這個也是一個指令,也許覺得和ng-bind差不多,但頁面渲染略慢時可能會被看到。另外,{{}}的performance遠不如ng-bind,只是用起來很方便。
13、ng-bind
ng-bind的行為和{{}}差不多,只是我們可以用這個指令來避免FOUC(Flash Of Unrendered Content),也就是未渲染導致的閃爍。
ng-bind-template指令
這個指令跟ng-bind 差不多
ng-bind是指替換元素的textContent為ng-bind的值
ng-bind-template是指替換元素的textContent的值為ng-bind-template經過angular.parse().assign的內容;
14、ng-cloak
ng-cloak也可以為我們解決FOUC。 ng-cloak會將內部元素隱藏,直到路由呼叫對應的頁面。
FOUC :文件樣式短暫失效
如果使用import方法對CSS進行匯入,
會導致某些頁面在Windows 下的Internet Explorer出現一些奇怪的現象:
以無樣式顯示頁面內容的瞬間閃爍,這種現象稱之為文件樣式短暫失效(Flash of Unstyled Content)
存在完全是為了使用者體驗,
如果一個html介面angular.js還沒載入進來,
那麼介面會有{{}}這樣的標誌,如果{{}}標誌多了,使用者會一臉矇蔽 啊,
ng-cloak如果加在根節點,那麼介面的{{}}會被隱藏,等到{{}}完全編譯成動態資料的時候介面才可見;
15、ng-if
如果ng-if中的表示式為false,則對應的元素整個會從DOM中移除而非隱藏,但審查元素時你可以看到表示式變成註釋了。如果相進行隱藏,可以使用ng-hide。
16、ng-switch
ngSwitch指令包含ng-switch on、ng-switch-when、ng-switch-default功能類似switch,ng-switch on指要判斷的值,ng-switch-when指條件條件符
合將顯示這個dom元素, ng-switch-default指條件都不符合預設顯示的元素。
17、ng-repeat
遍歷集合(陣列),給每個元素生成模板例項,每個例項的作用域中可以用一些特殊屬性,如下
<ul ng-repeat="user in data"><ul>
$index : 表示當前item的索引,
$first : 如果item為第一個,那麼$first為true ,
$middle : 如果item不是開頭,不是結尾$middle為true,
$last : 如果item是最後一個, $last為true,
$even : 如果索引為偶數, 那麼$even為true,否則為false
$odd : 同上, 索引為奇數$odd為true....;
18、ng-href
起初我在一個文字域中弄了個ng-model,然後像這樣<a href="{{myUrl}}">在href裡面寫了進去。
19、ng-src
大同小異,即表示式生效前不要載入該資源。
介面載入的時候才不管img的標籤src有什麼
都會一併載入
如果圖片的src包含了{{****}}這些字元
瀏覽器不會管這是什麼東西
在渲染dom樹的時候
會直接請求這個地址
如果想通過{{****}}動態生成img標籤的src,不要用src,要用ng-src
20、ng-class
用作用域中的物件動態改變類樣式, 通過一個表示式 來判斷什麼情況下 用什麼樣式
21、ng-click
點選事件
ng-click=event()
$scope.event=function(){}
22、ngKeyup
鍵盤事件
23、ngKeydown
鍵盤事件
24、ngKeypress
鍵盤事件
25、ngMousedown、ngMouseenter、ngMouseleave、ngMousemove、ngMouseover、ngMouseup
滑鼠事件
26、ngTrim
去除左右空格
27、ngInclude
ng-include指令是指這個指令標籤的innerHTML為指定的url
這個url為相對與當前目錄的url地址或者絕對地址
angular會通過ajax請求該地址
然後把地址的內容作為指令元素innerHTML填充;
28、ngIist
ng-list這個指令要和ng-model合起來用
ng-list在輸入框的表現通過split(",")的陣列才是實際的model
ng-list預設為","逗號
要設定成自定義的區分符,直接為ng-list賦值即可;
29、ngPattren
匹配這個輸入框的輸入值是否符合這個正則,如果不匹配,這個元素會被加上ng-invalid的class, 如果匹配會被加上ng-valid的class
30、ng-paste ng-copy ng-cut
他們是一夥的,如果輸入框的值是粘帖的,那麼ng-paste就為真, ng-copy,ng-cut也是同理
31、ng-non-bindable
ng-non-bindable指令指該元素的內部{{****}}不被繫結和轉義,不受angular的掌控:
32、ng-open
這個我也認為和ng-open, ng-hide差不多, 區別是ng-open只能繫結details元素,(details標籤目前只有webkit瀏覽器支援)
當ng-open的值為open那麼繫結的details內部的summary元素就顯示
33、input裡的一些屬性
ngMinLength,,ngMaxLength,ng-parttern,通過正則判斷input是否匹配,ngChange,
ng-vlaue就只是設定值而已 不雙向繫結資料