2013-02-02 115 views
6

我很難理解AngularJS中的指令。通過AngularJS自己的定義是在最好的困惑:什麼是Angular中的指令.JS

Directives are a way to teach HTML new tricks. During DOM compilation directives are matched against the HTML and executed. This allows directives to register behavior, or transform the DOM.

可能有人在用簡單的英語AngularJS教學編程常用解釋指令。例如:directives are funcions/objects that extends ...

+1

的可能重複[什麼是angularjs指令?](HTTP:/ /stackoverflow.com/questions/13875466/what-is-an-angularjs-directive) –

回答

9

它們是擴展HTML,添加新元素和/或向現有元素添加新屬性的一種方法。 來自Angular的開發人員指南:

指令是由自定義屬性,元素名稱或類名的存在觸發的行爲或DOM轉換。指令允許您以聲明方式擴展HTML詞彙表。

可以使用他們要麼添加行爲HTML,定義,或用於動態操作DOM,定義編譯功能,可以修改鏈接功能,保持屬於作用域變量和DOM元素之間的雙向綁定甚至可以生成新的DOM元素和屬性。 請考慮它是一種擴展HTML並將其轉換爲域特定語言的方法。

+0

我明白你的意思,但你能否詳細說明它是如何使HTML成爲一種特定於域的語言?我認爲它的域名幾乎就是互聯網。你是否說過,與Angular相比,它更像是一種特定領域的PROGRAMMING語言,而不是一種標記語言? – user137717

4

指令可以是屬性,標籤或甚至類名稱。

一旦你把它們寫在你的HTML標記中,它會被角度拾取並按照你定義的方式行事。

它可以讓你定義新的自定義HTML元素,如或,或新的行爲的能力屬性,如

<div angry></div> 

每當有人會點擊該分區,他將得到和警報,「我很生氣」 。

基本上你可以做所有你需要的擴展,以使你的html儘可能精簡和易懂。這一切都取決於你如何定義你的指示。

+0

沒有像_angular interpreter_這樣的東西,在DOM解析階段解析指令,執行它們的編譯函數來轉換DOM,並在它們之後鏈接函數附加到範圍並在瀏覽器事件循環的上下文中執行。 – remigio

+0

Angular的摘要循環不是瀏覽器事件循環,它只是由它觸發。但你是對的,而且你更聰明,也更帥氣......我將刪除「解釋者」一詞。 –

+0

我既不聰明也不比你更帥,我只是想說,角碼不會被解釋,因爲我認爲這可能會讓每個人都讀不清。無論如何,我很抱歉,我既不想冒犯,也不會減少你的回答。 – remigio

0

AngularJS指令是HTML模板標記(即屬性,元素和CSS類)和支持JavaScript代碼的組合。 angularJs JavaScript代碼定義了html元素的html數據和行爲。

AngularJs指令用於擴展HTML詞彙表,即它們用新行爲修飾html元素並幫助以有趣的方式操作html元素屬性。

有由AngularJS等爲NG-應用,NG-控制器,NG-重複,NG-模型等提供了一些內置的指令