Javascript AngularJS中指令和静态DOM元素之间的差异

Javascript AngularJS中指令和静态DOM元素之间的差异,javascript,frameworks,angularjs,Javascript,Frameworks,Angularjs,我已经读过这本书了 关于AngularJS博士 但我真的不明白指令 例如: 我有静态html: <div class="test test2" cid="549" sid="a5e3c4f8a9">text-text-text</div> text 当我手动执行此操作时,我知道它在浏览器解析时只会创建和调用一次 但是当我使用相同的dom元素创建一个指令时会发生什么呢 <x my-directive>text-text-text</x> tex

我已经读过这本书了 关于AngularJS博士

但我真的不明白指令

例如:

我有静态html:

<div class="test test2" cid="549" sid="a5e3c4f8a9">text-text-text</div>
text
当我手动执行此操作时,我知道它在浏览器解析时只会创建和调用一次


但是当我使用相同的dom元素创建一个指令时会发生什么呢

<x my-directive>text-text-text</x>
text
这是相同的效果吗

我问这样一个新手问题,因为我在html页面上使用了200多个元素。 如果我将它们改为单一指令:当然,管理它们会容易得多

如果它只是在浏览器的编译时变慢,那也没问题,但在运行时会发生什么呢

我很抱歉,如果问题不充分的话。我刚接触Stackoverflow

多谢各位


Daniel

如果我理解正确,您想知道AngularJS是如何创建指令的,以及您的指令方法被调用了多少次

当您创建一个指令(使用
module.directive('myDirective',…)
)时,您实际上只是在创建一个定义。每次使用该指令时(如
),AngularJS都将运行指南中描述的过程:即,它将编译并链接每次使用。必须这样,因为指令不是孤立存在的;它不仅存在于调用它的
$scope
中,而且还可以利用元素属性和转包内容。定义只出现一次,但每个实例都经过编译和链接

一旦指令被创建,它就在技术上完成了;如果您没有设置任何
$watch
$observe
或事件绑定,那么您的“指令”现在就是位于
链接
函数末尾的DOM中的任何内容-没有更多的计算。换句话说,编译和链接之后会发生什么完全取决于您


回到您的示例:如果在页面上使用同一指令的200,则该指令将定义一次,但所有200将分别编译和链接。但我不确定你问的是什么意思。你问题背后的问题是什么?

如果我理解正确,你想知道AngularJS是如何创建指令的,以及指令方法被调用了多少次

当您创建一个指令(使用
module.directive('myDirective',…)
)时,您实际上只是在创建一个定义。每次使用该指令时(如
),AngularJS都将运行指南中描述的过程:即,它将编译并链接每次使用。必须这样,因为指令不是孤立存在的;它不仅存在于调用它的
$scope
中,而且还可以利用元素属性和转包内容。定义只出现一次,但每个实例都经过编译和链接

一旦指令被创建,它就在技术上完成了;如果您没有设置任何
$watch
$observe
或事件绑定,那么您的“指令”现在就是位于
链接
函数末尾的DOM中的任何内容-没有更多的计算。换句话说,编译和链接之后会发生什么完全取决于您


回到您的示例:如果在页面上使用同一指令的200,则该指令将定义一次,但所有200将分别编译和链接。但我不确定你问的是什么意思。您的问题背后的问题是什么?

“当我使用相同的dom元素创建一个指令时会发生什么情况”——我在这里没有听您的。您指的是什么“同一元素”?我正在从元素创建指令。我在页面上有200条指令,“当我用同一个dom元素创建一个指令时会发生什么”——这里我不跟你说。您指的是什么“同一元素”?我正在从元素创建指令。我在页面上有200个。