2017-05-09 53 views
1

我想改变取决于一些条件的字体颜色==>正在添加上可观察到的从背面通过Http请求返回两个DATAS,我尝试论文码波纹管(打字稿+角)NgStyles在角4

<td *ngFor="let user of userService.users | async">{{user.data.apps.details[0].label}} 
      <span [style.color]="user?.data.apps.details[0].state_id as colorId 'green' : 'orange' : 'red'"> 

</td> 

“用户” 是我观察到的, “userService” 我的http服务,大括号内的DATAS {{}}从JSON对象

+0

你大概的意思是 “用户计划** S **” 是我的观察的”,因为'user'是只有'userService.users'发出的数组中的一个项目。那么问题是什么?什么不按预期工作? –

+0

'.state_id'应该有什么值?值应该是“绿色”,“橙色”还是“红色”?你的表达不是有效的代码,它不清楚你试图完成什么。 –

+0

对不起,用户... state_id正在返回0,1或2,我想改变标签的颜色取决于该值 –

回答

2

取这不是一个有效的表达式

user?.data.apps.details[0].state_id as colorId 'green' : 'orange' : 'red' 

更新

这应该给你想要什么,如果.state_id回报01,或2

<span [style.color]="['green', 'orange', 'red'][user?.data.apps.details[0].state_id]"> 
+0

是的我知道Günter我试图动态地改变CSS适用于由ngFor解析的“标签”取决于“state_id” –

+0

我不确定是什么从你的评论做出。这是否解决您的问题?或者它不是你想要的? –

+0

例如以下代码返回标签==> {{user.data.apps.details [0] .label}}以下内容返回我的state_id => {{user.data.apps.details [0] .state_idl}}我想根据我的state_id给我的“标签”着色为0 =绿色1 =橙色和2 =红色 –