我们来看下面的例子。将元素添加到元素有两种方法:
类绑定
<div [class]="currentClasses">Hello world #1</div>
班级指令
<div [ngClass]="settings">Hello world #1</div>
类绑定和类指令之间的底层功能有什么区别?最初我认为绑定只是写入某个对象的属性,但HTMLElement上没有这样的属性class
,它是className
,所以这种推理可能是错误的。它当然不仅仅为DOM元素添加class
属性,因为使用相同的语法将值绑定到组件类字段。
这些问题也出现在我脑海中:我可以实现自定义绑定吗? []
绑定背后使用了什么机制?
我当然明白ngClass
具有复杂的功能,例如跟踪组件类的属性,而class
绑定只是添加类。但这个问题不是关于应用程序,而是关于它们如何在内部实现。
答案 0 :(得分:2)
[class.xxx]
,[attr.xxx]
,[style.xxx]
是特殊的Angular2模板语法,由Angular2直接处理。
这不是可扩展的,只有Angular支持。
另一方面,[ngClass]
是一个指令,就像您可以自己构建它一样。它默认包含在Angular2中。