我需要在ngClass表达式中插入一个值,但我不能让它工作.
我试过这些解决方案,这是唯一对我有意义的解决方案,这两个解决方案都失败了:
<button [ngClass]="{'{{namespace}}-mybutton': type === 'mybutton'}"></button>
<button [ngClass]="{namespace + '-mybutton': type === 'mybutton'}"></button>
Run Code Online (Sandbox Code Playgroud)
这个与插值一起使用但是由于整个字符串被添加为类而失败了动态添加的类:
<button ngClass="{'{{namespace}}-mybutton': type === 'mybutton'}"></button>
Run Code Online (Sandbox Code Playgroud)
所以我的问题是你如何使用这样的动态类名ngClass?
Ank*_*ngh 167
尝试
<button [ngClass]="type === 'mybutton' ? namespace + '-mybutton' : ''"></button>
Run Code Online (Sandbox Code Playgroud)
代替.
要么
<button [ngClass]="[type === 'mybutton' ? namespace + '-mybutton' : '']"></button>
Run Code Online (Sandbox Code Playgroud)
甚至
<button class="{{type === 'mybutton' ? namespace + '-mybutton' : ''}}"></button>
Run Code Online (Sandbox Code Playgroud)
将会有效但使用ngClass的额外好处是它不会覆盖由任何其他方法(例如:[class.xyz]指令或class属性等)添加的其他类class.
ngClass有三种类型的输入
key 'key' "key"它们都是相同的,并且[key]不支持AFAIK.Gün*_*uer 16
这应该工作
<button [ngClass]="{[namespace + '-mybutton']: type === 'mybutton'}"></button>
Run Code Online (Sandbox Code Playgroud)
但Angular会抛出这种语法.我认为这是一个错误.另请参见/sf/answers/2521684651/
其他人无效.你不能[]一起使用{{}}.一个或另一个.{{}}在这种情况下绑定结果字符串,这不会导致所需的结果,因为需要传递一个对象ngClass.
解决方法@A_Sing或者显示的语法
<button [ngClass]="type === 'mybutton' ? namespace + '-mybutton' : ''"></button>
Run Code Online (Sandbox Code Playgroud)
可以使用.
小智 8
基本上是其他答案的重复 - 但我没有完全明白。也许现在有人终于通过这个例子明白了。
[ngClass]="['svg-icon', 'recolor-' + recolor, size ? 'size-' + size : '']"
Run Code Online (Sandbox Code Playgroud)
将导致例如
class="svg-icon recolor-red size-m"
Run Code Online (Sandbox Code Playgroud)
这非常有效!
<div [class.any-class]="condition"></div>
Run Code Online (Sandbox Code Playgroud)
例子:
<div [class.hide]="user.isPaid()"></div>
Run Code Online (Sandbox Code Playgroud)
<div *ngFor="let celeb of singers">
<p [ngClass]="{
'text-success':celeb.country === 'USA',
'text-secondary':celeb.country === 'Canada',
'text-danger':celeb.country === 'Puorto Rico',
'text-info':celeb.country === 'India'
}">{{ celeb.artist }} ({{ celeb.country }})
</p>
</div>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
102217 次 |
| 最近记录: |