2013-02-02 74 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-模型等提供了一些内置的指令