【Angular2】插值表达式如何嵌套显示

问题描述


  Angular项目中添加了一个级联下拉框组件,如下图所示:

这里写图片描述

  组件使用ngFor指令遍历Select 同样还有每个Select中的Option。

<option *ngFor="let item of datas[i]" value="{{item.id}}">{{item.name}}</option>

  现在需要解决的问题是:每个下拉列表数据源中的字段名称都不相同,如果统一都使用 item.name 显然不能满足需求。而如果每个列表所要显示的字段都是可以由用户来配置的,那么组件就会变得灵活很多。


解决方案


  • 准备一个数组来保存每个下拉列表要显示的字段名称:
dropDownAttributes =["institutionName","majorName"];
  • 首先想到的是直接利用 {{}} 插值表达式的嵌套,来完成每个Select的Option项属性的绑定。但是测试后发现Angular中不支持 {{}} 的嵌套,后来在Stack Overflow上发现有类似的问题,使用 [ ] 完美解决问题。
{{item[dropDownAttributes[i]]}}

  


小结


  我一直在思考该如何把问题表述准确,如果别人遇到和我一样的问题,能够快速的通过关键字搜索找到我的答案。同样的,准确使用关键词搜索能够快速的找到自己想要的答案。 在中文搜索插值表达式嵌套没有想要的答案时,又在谷歌搜索中输入了 Angular2 nested interpolation ,第一条就解决了我的问题。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 16
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值