Javascript 为什么ngClass不是标准的属性绑定

Javascript 为什么ngClass不是标准的属性绑定,javascript,angular,angular-directive,Javascript,Angular,Angular Directive,我不熟悉Angular,只是关于内置指令和属性绑定的区别的一个问题,下面是我看到的一些代码: /。。。只是js表达式,这里不相关 你好,世界。 姓名: 那么,为什么我们不能像[value]那样使ngClass成为标准属性绑定呢 <div [class]="'text-white' + ..."> 为什么它必须是一个指令?传递的文本值应该在属性周围没有括号 ngclass="text-white" 如果该值是变量,则可以通过将属性括在括号中动态传递该值: 组件技术 mycl

我不熟悉Angular,只是关于内置指令和属性绑定的区别的一个问题,下面是我看到的一些代码:

/。。。只是js表达式,这里不相关
你好,世界。
姓名:
那么,为什么我们不能像[value]那样使ngClass成为标准属性绑定呢

<div [class]="'text-white' + ...">


为什么它必须是一个指令?

传递的文本值应该在属性周围没有括号

ngclass="text-white"
如果该值是变量,则可以通过将属性括在括号中动态传递该值:

组件技术

 myclass: string = 'text-white';
getClassses(): any {
 return {'row': true, 'container': false}
}
isActive = true;
componentClass = 'my-class';

Component.html

[ngclass]="myclass"
[ngClass]="getClasses()"
<div [class]="componentClass" [ngClass]="{ active: isActive }">hello</div>
您还可以传递一个对象,其中每个项目都是CSS类名,并且值
true
false
true
表示将使用该类
false
表示不会使用该类

[ngClass]="{'row': true, 'container': false}"
没有什么可以阻止你动态地构建它

组件技术

 myclass: string = 'text-white';
getClassses(): any {
 return {'row': true, 'container': false}
}
isActive = true;
componentClass = 'my-class';

Component.html

[ngclass]="myclass"
[ngClass]="getClasses()"
<div [class]="componentClass" [ngClass]="{ active: isActive }">hello</div>

可以直接使用
[class]
。甚至可以与
ngClass
组合,如下所示:

在app.component.ts中

 myclass: string = 'text-white';
getClassses(): any {
 return {'row': true, 'container': false}
}
isActive = true;
componentClass = 'my-class';

在app.component.html中

[ngclass]="myclass"
[ngClass]="getClasses()"
<div [class]="componentClass" [ngClass]="{ active: isActive }">hello</div>
你好 如果检查html,您将看到以下结果:

div

但我不推荐。当您将更好地构建可重用组件时,让class属性可供最终开发人员使用。

该属性可能会有所帮助。@KirkLarkin它不适合我,它没有说明为什么ngClass不能成为标准属性绑定