Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AngularJs指令作为自定义标记、属性和类_Angularjs_Angularjs Directive - Fatal编程技术网

AngularJs指令作为自定义标记、属性和类

AngularJs指令作为自定义标记、属性和类,angularjs,angularjs-directive,Angularjs,Angularjs Directive,我刚开始学习AngularJs,正在试验指令。根据我所读到的内容,可以使用以下任一方式在HTML中定义: 自定义标记 属性 班级 许多参考资料建议使用属性,因为它是最兼容的。我更喜欢自定义标记方法。谢天谢地,我只需要支持现代浏览器(IE10+)。考虑到这一点,是否还有其他原因使我仍然应该在自定义标记上使用属性方法 欢迎任何理由;兼容性、灵活性等。如果明天html决定使用与您相同的名称扩展和合并html标记,这将是一个问题,尽管您可能认为使用ATTR可能会遇到同样的问题,但对html呈现

我刚开始学习AngularJs,正在试验指令。根据我所读到的内容,可以使用以下任一方式在HTML中定义:

  • 自定义标记
  • 属性
  • 班级


许多参考资料建议使用属性,因为它是最兼容的。我更喜欢自定义标记方法。谢天谢地,我只需要支持现代浏览器(IE10+)。考虑到这一点,是否还有其他原因使我仍然应该在自定义标记上使用属性方法


欢迎任何理由;兼容性、灵活性等。

如果明天html决定使用与您相同的名称扩展和合并html标记,这将是一个问题,尽管您可能认为使用ATTR可能会遇到同样的问题,但对html呈现的影响也不一样,由于某种原因,其他一些浏览器将来可能会表现出与IE相同的行为,并决定不接受或呈现自定义标记。我只是认为ATTR是一个更安全的选择,但就目前而言,我不知道你为什么会选择一个而不是另一个,除了创建坚持html标准标记之外。如果明天html决定使用与你相同的名称扩展和合并html标记,那将是一个问题,尽管您可能认为使用ATTR可能会遇到同样的问题,但对html呈现的影响也不尽相同,而且,由于某种原因,其他一些浏览器可能会在将来表现出与IE相同的行为,并决定不接受或呈现自定义标记。我只是认为attr是一个更安全的选择,但就目前而言,我不知道为什么要选择一个而不是另一个,除了创建坚持html标准标记之外,实际上没有理由在您的用例实际需要自定义标记的情况下,在自定义标记上使用属性方法

在Angular中,您实际上不仅可以将指令注册为属性、类或元素,还可以注册为注释(restrict:'M')。或者,如果您愿意,您的指令可以用作属性、类、元素或注释,而不限于一种类型(restrict:'AECM')

然而,要回答您的问题,并不是说一个人应该使用属性方法而不是其他方法。它始终取决于您的用例。如果要扩展现有元素,可以使用属性限制(顺便说一句,这也是默认设置)。如果您想要构建一个可重用的组件,比如
元素,那么您更愿意使用元素限制,因为这就是您想要的

在某些情况下,您还可以构建作为元素的指令,并使用作为属性的其他指令进行扩展


因此,请选择最适合您的用例的方法。

当您的用例实际需要自定义标记时,实际上没有理由在自定义标记上使用属性方法

在Angular中,您实际上不仅可以将指令注册为属性、类或元素,还可以注册为注释(restrict:'M')。或者,如果您愿意,您的指令可以用作属性、类、元素或注释,而不限于一种类型(restrict:'AECM')

然而,要回答您的问题,并不是说一个人应该使用属性方法而不是其他方法。它始终取决于您的用例。如果要扩展现有元素,可以使用属性限制(顺便说一句,这也是默认设置)。如果您想要构建一个可重用的组件,比如
元素,那么您更愿意使用元素限制,因为这就是您想要的

在某些情况下,您还可以构建作为元素的指令,并使用作为属性的其他指令进行扩展

因此,为您的用例选择最有效(并且最有意义)的

<my-element></my-element>
<div my-element></div>
<div class="my-element"></div>