AngularJs1學習筆記:指令
阿新 • • 發佈:2019-01-10
AngularJS 通過被稱為 指令 的新屬性來擴充套件 HTML。
AngularJS 通過內建的指令來為應用新增功能。
AngularJS 允許你自定義指令。
AngularJS 指令是擴充套件的 HTML 屬性,帶有字首 ng-
ng-app
指令初始化一個 AngularJS 應用程式。,標記AngularJs的範圍,這個範圍內AngularJs可以識別。一般放在html標籤裡,整個html一個就好,多了也只是第一個有作用,值一般不要為空。
ng-init
指令初始化應用程式資料,基本寫法就是ng-init=”xxx=’xxx’”,有多個元素的時候,以”;”間隔
<div ng-init="name='HAHA';age='100'">
<p>姓名:{{name}},年齡:{{age}}</p>
<!--顯示:姓名:HAHA,年齡:100-->
</div>
ng-model
指令把元素值(比如輸入域的值)繫結到應用程式。
<div ng-init="name='HAHA';age='100'">
<p>姓名:{{name}},年齡:{{age}}</p>
<input ng-model="name"></input >
</div>
ng-bind
這個指令也是用來繫結資料。
<div ng-init="name='HAHHA'">
<p ng-bind="name"></p>
</div>
ng-model是用於表單元素的,支援雙向繫結。對普通元素無效;
ng-bind用於普通元素,不能用於表單元素
當ng-bind和{{}}同時使用時,ng-bind繫結的值覆蓋該元素的內容。
<div ng-init="name='HAHHA';age='122'">
<p ng-bind ="age">{{name}}</p>
</div>
這個最後只會顯示122
ng-repeat
指令對於集合中(陣列中)的每個項會 克隆一次 HTML 元素。看一下列子。
從圖上可以看出,是建立了2個ul,然後資料顯示在li上,可以加個背景顏色看一下
html:
<div ng-controller="MainController">
<ul ng-repeat="m in emails">
<li>{{$index+1}}:</li>
<li>{{m.id}}</li>
<li>{{m.name}}</li>
<li>{{m.message}}</li>
</ul>
</div>
js
//郵件
var messages=[{
id:100,
name:"哈哈哈",
message:"今天星期五啊,明天不上班。"
},{
id:300,
name:"豬八戒",
message:"約了師兄逛公園"
}];
app.controller('MainController',function($scope){
console.log(messages);
$scope.emails =messages;
});
自定義指令
app.directive('myDirective',function(){
return{
template:"<p>這是一個自定義指令</p>"
}
});
使用的時候可以這樣的使用,會輸出 這是一個自定義指令
<my-directive></my-directive>
有關指令的使用有多種方法,具體通過restrict 的值來判斷
app.directive('myDirective',function(){
return{
restrict : "E",//元素名使用
template:"<p>這是一個自定義指令</p>"
}
});
1.作為元素名使用
restrict : "E",//元素名使用
<my-directive></my-directive>
2.作為屬性使用
restrict : "A",//屬性使用
<div my-directive></div>
3.作為類名使用
restrict : "C",//類名使用
<div class="my-directive"></div>
4.作為註釋使用
restrict : "M",//作為註釋名使用
replace : true//這個要加上否則註釋使用沒效果
<!-- directive:my-directive -->
指令的名稱是區分大小寫的。大家可以試試指令名稱是myDDirective的時候用什麼方式才會有效。
以上,不對的地方請指出謝謝