绑定和指令之间的区别

时间:2016-11-15 13:01:39

标签: javascript angular

我们来看下面的例子。将元素添加到元素有两种方法:

类绑定

<div [class]="currentClasses">Hello world #1</div>

班级指令

<div [ngClass]="settings">Hello world #1</div>

类绑定和类指令之间的底层功能有什么区别?最初我认为绑定只是写入某个对象的属性,但HTMLElement上没有这样的属性class,它是className,所以这种推理可能是错误的。它当然不仅仅为DOM元素添加class属性,因为使用相同的语法将值绑定到组件类字段。

这些问题也出现在我脑海中:我可以实现自定义绑定吗? []绑定背后使用了什么机制?

我当然明白ngClass具有复杂的功能,例如跟踪组件类的属性,而class绑定只是添加类。但这个问题不是关于应用程序,而是关于它们如何在内部实现。

1 个答案:

答案 0 :(得分:2)

[class.xxx][attr.xxx][style.xxx]是特殊的Angular2模板语法,由Angular2直接处理。 这不是可扩展的,只有Angular支持。

另一方面,[ngClass]是一个指令,就像您可以自己构建它一样。它默认包含在Angular2中。