AngularJS - 列表 - 根据值有条件地格式化列表中的项目

AngularJS - List - conditionally format an item in a list based on value

我正在使用 JSON 绑定到以下 -

一个事实包含一个名字所以 - fact.name = 'ABC', fact.name ='XYZ'

离子列表

 ion-item ng-repeat="fact in facts" item="fact" 


 if fact contains  ABC I want to show the item like this.

   use ABC class and show it in BOLD

if fact contains   XYZ  I want to show the itme like this.

use XYZ class and show in RED


    and so on

如何根据值有条件地显示/格式化列表项?

您可以使用 ng-class 应用您的 css:

<li ng-class="{'ABC': fact.name == 'ABC', 'XYZ': fact.name == 'XYZ'}></li>

如果你想应用 css 如果 fact.name 包含一个字符串:

 <li ng-class="{'ABC': fact.name.indexOf('ABC') > -1, 'XYZ': fact.name.indexOf('XYZ') > -1}></li>

如果您确定您的 css class 名称和 fact.name 始终匹配,实际上您可以直接将其绑定到 class 属性。

 <li class="{{fact.name}}" style="{{ fact.name == 'ABC' ? 'font-weight:bold':'color:red'}}"></li>

注意:当您定义了 css class 时,单独使用样式不是一个好习惯。我希望将这些样式适当地移动到 css classes。