angular - 如何使用 Angular 在 ngClass 中使用函数和表达式?
问题描述
我目前正在尝试显示具有不同背景颜色的口袋妖怪列表,具体取决于它们的类型。我想实现一个功能,其中所选口袋妖怪的边框也显示为金色边框颜色。如果我一次使用它们,它们工作得很好,但我在一起使用它们时遇到了麻烦。
我的html如下:
<h1>Pokédex</h1>
<p [hidden]="!selectedPokemon">Geselecteerde pokemon: {{selectedPokemon}}</p>
<div class="wrapper">
<app-pokemon (selectedPokemon)="highlightPokemon($event)"
*ngFor="let item of pokemons"
[pokemon]="item"
[ngClass]="{getType(item.type), item.name === selectedPokemon ? 'select' : ''}">
</app-pokemon>
</div>
我的 getType 函数如下:
getType(pokemonType: string): string {
pokemonType = pokemonType.toLowerCase();
switch(pokemonType) {
case 'grass': {
return 'grass'
}
case 'fire': {
return 'fire'
}
case 'water': {
return 'water'
}
default: {
return 'grass'
}
}
}
我的 IDE 抱怨的错误:
我还尝试了以下方法:
[ngClass]="getType(item.type), item.name === selectedPokemon ? 'select' : ''">
非常感谢您的帮助!
解决方案
您可以使用 [className]="getType(item.type)" 和 [class.select]="item.name === selectedPokemon"
推荐阅读
- scala - 如果错误则抛出异常并在成功时不返回任何内容的函数式方法
- visual-studio - ADS——运行按钮调光
- sass - “你忘记发出异步完成信号了吗?”
- javascript - Angular Material Table - 拖动和滚动时,拖动的行不会放在正确的位置
- c++ - 如何在 C++ 中实现两个向量的编译时间乘积
- python - Fetch variable from a .txt
- r - 根据数据表设置更新闪亮的输入
- javascript - 如何将 return 语句分配给 Javascript 中的变量?
- reactjs - 测试与 Jest 反应时如何模拟 ApolloProvider
- git - 在 Git 中,当我将本地分支推送到远程时,如何将它们配置为具有前缀?