- 指令是給原生 html 標(biāo)簽添加了一些新的屬性,達(dá)到自己想要的效果
- jquery 是用來做特效做 DOM 操作的,以 DOM 驅(qū)動
- AngularJS 是以數(shù)據(jù)驅(qū)動的
- 雙向綁定就是 MVVM
- ng-include 內(nèi)部是 ajax 請求
- 防止閃爍的插值使用方式
<style>
[ng-cloak]{
display:none;
}
</style>
<p ng-cloak>{{}}</p>
- 自定義指令時(shí)
app.directive('xmg',function(){
return {
restrict:'EA',
//模版必須用一個(gè)盒子包裝起來
//template:'<div><h1>這是模版</h1><p>123</p></div>',
template:'<h1>這是模版</h1><div ng-transclude></div>'
replace:true,
//是否保留原標(biāo)簽中的內(nèi)容 <div ng-transclude></div>代表的是 標(biāo)簽中的所有內(nèi)容插入的位置
transclude:true,
controller:function($scope){
//當(dāng)指令創(chuàng)建時(shí)就會執(zhí)行,主要處理一些業(yè)務(wù)邏輯
},
link:function($scope){
//當(dāng)指令當(dāng)中所有內(nèi)容加載完畢,才會執(zhí)行,處理一些 DOM 操作
}
}
})
自定義指令的時(shí)候
如果指令名字有大寫也有小寫,那么在使用模版替換元素/屬性的時(shí)候 需要全小寫,大寫之前用’-‘隔開
app.directive('xmgContent',function(){
restrict:'EA',
template:'<h1>這是模版</h1>',
replace:true
})
<xmg-content></xmg-content>
<div xmg-content></div>
控制器中注入的是服務(wù),angular.module('app',[]); 中括號中注入的是模塊