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