如何編寫Angular指令

2022-01-11 04:50:15 字數 2982 閱讀 2474

[20140917]angular:如何編寫乙個指令

body

body>*:first-child

body>*:last-child

p, blockquote, ul, ol, dl, table, pre

h1, h2, h3, h4, h5, h6

h1 tt, h1 code, h2 tt, h2 code, h3 tt, h3 code, h4 tt, h4 code, h5 tt, h5 code, h6 tt, h6 code

h1 h2

h3 h4

h5 h6

body>h2:first-child, body>h1:first-child, body>h1:first-child+h2, body>h3:first-child, body>h4:first-child, body>h5:first-child, body>h6:first-child

a:first-child h1, a:first-child h2, a:first-child h3, a:first-child h4, a:first-child h5, a:first-child h6

h1+p, h2+p, h3+p, h4+p, h5+p, h6+p

a a:hover

ul, ol

ul li>:first-child, ol li>:first-child, ul li ul:first-of-type, ol li ol:first-of-type, ul li ol:first-of-type, ol li ul:first-of-type

ul ul, ul ol, ol ol, ol ul

dl dl dt

dl dt:first-child

dl dt>:first-child

dl dt>:last-child

dl dd

dl dd>:first-child

dl dd>:last-child

pre, code, tt

code, tt

pre>code

pre

pre code, pre tt

kbd

blockquote

blockquote>:first-child

blockquote>:last-child

hr img ps:angularjs適合開發crud的spa

angular directive是構建在dom元素(屬性、標籤名、注釋和css類)上的標記,告訴angularjs的html編譯器($compile) 附加指定的行為到元素或者甚至變換這個元素和它的子集。

ps:通過擴充套件html標籤的方式提供可復用的web元件

ps2:指令的作用:提供語義化標籤

var directivemodule=angular.module('newkit.neghotkeys');

directivemodule.directive('neghotkeys',function(injectables);

return directivedefineobject;

});

引數說明
/*demo1指令定義*/

return

});/*使用*/

/*結果(指令將滿足條件的元素替換為了新的內容)*/

hello world!

hello world!

操作步驟分析

設定該指令可採用元素的標籤和屬性申明,並設定了乙個文字模板,同時設定了replace=true。

在html中,採用標籤如

和屬性來實現呼叫

/*demo2指令定義*/

return

});/*使用*/

原始的內容,

還會在這裡。

/*頁面生成的html*/

this is demo2

原始的內容,

還會在這裡。

this is demo2

分析

通過在指令中設定transclude=true,同時在template中包含,實現了將元素內部元素移動到了ng-transclude元素內部,並建立了新的作用域

/*指令*/

return

}}).directive('demo3compile',function();}}

});/*使用*/

/*頁面生成的html*/

good link

good link

test demo3 compile

分析

compile用於在編譯期處理模板內容,並能設定prelink和postlink函式,此時將不能設定link函式,**如下:

compile:function(telement,tattrs,transclude),

post:function postlink(scope,ielement,iattrs)

};}

link用於對替換後的元素進行操作,如果引數是ielement。

/***在這裡*/

return }

' + '',

replace:true,

link:function(scope,ielement,iattrs))}}

});/*html在這裡*/

、/*效果請自行測試*/

分析

可以利用指令完成特定的功能了。

**在這裡

指令依附於模組

乙個模組可以有多個指令,但是需要採用示例三的寫法

指令可以語義化標籤,實現html元件化

其他...

Angular頁面指令

分為元件帶模板的指令,結構性指令改變宿主文件結構 ngif ngswitch ngfor 屬性性指令改變宿主行為 ngmodel ngstyle ngclass innerhtml 將value作為html標籤來解析 textcontent 將value作為文字解析 ngif ngif 如果vlau...

angular基礎 指令

指令 directive 可以理解為沒有模版的元件,它需要寄宿在乙個元素上 宿主 host 1.hostbinding 繫結宿主的屬性或樣式 import from angular core directive export class griditemdirective 2.hostlistene...

angular指令總結

ng list ng non bindable ng switch ng readonly ng include ng template angular中有一些不常用,但卻非常有用的指令,如果在開發過程中可以直接使用這些指令,會大大地加快我們的開發效率。ng class 指令用於給 html 元素動...