对AngularJS中的条件文本使用DRY函数,而不是重复的ng类
Use a DRY function instead of a repeating ng-class for conditional text in AngularJS
我使用了5次以上(我计划使用更多)相同的html/angular标签:
<div
ng-class="{
'critical': 'fa fa-warning fa-fw fa-2x text-red',
'high': 'fa fa-warning fa-2x fa-fw text-orange' ,
'medium': 'fa fa-warning fa-2x fa-fw text-yellow',
'low': 'fa fa-warning fa-2x fa-fw text-aqua'
}[ticket.service_impact]">
</div>
我如何在代码中一次又一次地在筛选器或指令中使用这段丑陋的代码?我在Rails上工作,所以遵循DRY实践非常重要。
根据AngularJS Api Docs,您在ngClass
指令的表达式部分有一些自由。
(https://docs.angularjs.org/api/ng/directive/ngClass)
该指令有三种不同的操作方式,具体取决于表达式计算为三种类型:
如果表达式的计算结果为字符串,则该字符串应为1或更多以空格分隔的类名。
如果表达式的计算结果为对象,则对于每个键值对对于具有truthy值的对象,使用相应的键作为类名。
如果表达式的计算结果为数组,则该数组的每个元素应该是类型1中的字符串或类型2中的对象。这意味着您可以在数组中将字符串和对象混合在一起让您可以更好地控制CSS类的显示。请参阅下面的代码例如。
因此,如果您愿意,可以提取冗长的表达式并将其放入变量或函数中。
相关文章:
- ng映射方向备选方案
- AngularJS UI路由器不能像ng路由器那样工作
- 角度:在ng重复上切换图像
- 正在使用$location.path(.)路由ng视图
- AngularJS:ng之后,重复$scope值未按预期更新
- ng打开空字符串
- 我应该使用Ng提交还是点击表格
- ng init中的表达式无法使用ng repeat
- ng更改事件不适用于Dropdown
- ng视图外的链接重定向到ng视图内的页面
- ng应用程序使脚本无限运行
- 角度的项目列表 ng 重复,ng 单击显示全宽描述
- ng隐藏和ng显示无法正常工作
- 从ng模板访问作用域
- 防止ng重复中的重复值(AngularJS)
- 从键值结构中获取数据,并将其与AngularJS中ng重复的值进行比较
- AngularJs列表ng单击以选择选项转换
- 如何使用AngularJs禁用ng选项中的选项
- ReferenceError: cordova is not defined @ng-cordova.min.js:7
- 对AngularJS中的条件文本使用DRY函数,而不是重复的ng类