我使用此代码根据状态显示不同的图标。但是当它从一个移动到另一个时,有一个似乎既没有出现的闪光。有什么方法可以解决这个问题或简化我的方法:
<span class="fa fa-circle-o fw"
ng-show="row.statusId == Status.NotSet"
style="padding-left: 0.3rem;"></span>
<span class="fa fa-unlock fw"
ng-show="row.statusId == Status.Clean"
style="padding-left: 0.3rem;"></span>
<span class="fa fa-wrench fw"
ng-show="row.statusId == Status.Dirty"
style="padding-left: 0.3rem;"></span>
<span class="fa fa-cloud-upload fw"
ng-show="row.statusId == Status.Saving"
style="padding-left: 0.3rem;"></span>
<span class="fa fa-check fw"
ng-show="row.statusId == Status.Saved"
style="padding-left: 0.3rem;"></span>
<span class="fa fa-warning fw"
ng-show="row.statusId == Status.SaveError"
style="padding-left: 0.3rem;"></span>
答案 0 :(得分:3)
@ raina77ow是正确的..在这里使用ng-class ...它可以接受一个函数......这里有一些伪代码
html:
<div id="rows-container" ng-repeat="row in rows">
<span ng-class="getStatus(row.statusId)" style="padding-left: 0.3rem;"></span>
</div>
JS:
$scope.getClassBasedOnStatus = function(statusId) {
switch (statusId) {
case 'Status.NotSet':
return 'fa fa-circle-o fw';
break;
case 'Status.Clear':
return 'fa fa-unlock fw';
break;
case 'Status.Dirty':
return 'fa fa-wrench fw';
break;
// etc...
}
}
看看这个小提琴:https://jsfiddle.net/L1Lshjvz/1/
答案 1 :(得分:1)
我发现ng-switch
在这种情况下效果最佳。
您可以像以下一样使用它:
<div class="the-parent" ng-switch="row.statusId">
<span class="fa fa-circle-o fw"
ng-switch-when="Status.NotSet"
style="padding-left: 0.3rem;"></span>
<span class="fa fa-unlock fw"
ng-switch-when="Status.Clean"
style="padding-left: 0.3rem;"></span>
<span class="fa fa-wrench fw"
ng-switch-when="Status.Dirty"
style="padding-left: 0.3rem;"></span>
<span class="fa fa-cloud-upload fw"
ng-switch-when="Status.Saving"
style="padding-left: 0.3rem;"></span>
<span class="fa fa-check fw"
ng-switch-when="Status.Saved"
style="padding-left: 0.3rem;"></span>
<span class="fa fa-warning fw"
ng-switch-when="Status.SaveError"
style="padding-left: 0.3rem;"></span>
</div>