以角度5获取对象的特定索引

时间:2018-03-08 13:25:33

标签: angular5

在一个组件中,我有一个如下对象:

statuses = {
    'accepted' : 'در حال حرکت به سمت مبدا',
    'picking' : 'در حال دریافت مرسوله',
    'delivering' : 'در حال حرکت به سمت مقصد',
    'delivered' : 'در حال تحویل دادن مرسوله'
};

并在html中:

<div *ngFor="let order of orders;">
  <div class="col-md-12 signle-order-div">
    <div class="col-md-4">
      <fa name="motorcycle" rotate="horizontal"></fa>
      <label>{{order.status.last_status}}</label><!-- this gives 'picking' -->
    </div>
  </div>
</div>

如何从状态对象而不是picking打印相关的数组索引?

1 个答案:

答案 0 :(得分:0)

你的statuses对象不是一个列表,它没有意义,因为它是讨论元素的(数字)索引。

您可以将其更改为数组: 你可以像这样改变你的结构(当然还有其他方法):

statuses = [
    {code: 'accepted', label: 'در حال حرکت به سمت مبدا'},
    {code: 'picking' : label: 'در حال دریافت مرسوله'},
    {code: 'delivering' : label: 'در حال حرکت به سمت مقصد'},
    {code: 'delivered' : label: 'در حال تحویل دادن مرسوله'},
]

然后获取索引:

// get the index of a specific order.status.last_status
statuses.findIndex(status => status.code === order.status.last_status)

我建议您在组件代码中将索引计算为订单对象的附加字段,因为我不希望在模板{{ ... }}中直接使用复杂函数。但无论如何它应该在模板中起作用。