如何仅将模型[0]传递给Ember中模板中的组件?

How to pass only model[0] to a component from the template in Ember?

我只想将模型[0](第一个数据元素)传递给模板中的组件。我有一个路由文件如下:

/order.js
export default Route.extend({

  firstIndex: computed('data', {
    get(){
    return Ember.get(this,'data[0]');
    }
  }),

  model(params) {
    return fetch(`/api/salesrowmodel/${params.order_id}`)
    .then(resp => resp.json())
    .then(function(data) {
      return {
        data,
      };
    });
  },
}); 

FirstIndex 是计算得到的 属性 到 return 数组的第一个索引数据。现在在模板中,我想将第一个索引数据传递给一个组件:

/order.hbs

<div class="Revenue-values">{{order-detail data=firstIndex.revenueHeader}}</div>

我的示例模型数据如下:

[{
"OrderId": "406-5309498-5972326",
"revenueHeader": {
"Principal": 982.14,
"Product Tax": 117.86,
"Total": 1100
}},
{
"OrderId": "506-5234568-5934567",
"revenueHeader": {
"Principal": 382.54,
"Product Tax": 34.46,
"Total": 234
}}]

它表明 null 或未定义的对象正在传递给 order-details。请帮我解决这个错误。

首先,模板没有绑定路由,而是绑定了控制器。因此,您需要将计算的 属性 移动到控制器。

下一个Ember.get(this,'data[0]');无效。您不能使用 Ember.get 访问数字 属性 等数组元素。依赖键 computed('data', 也应该是 computed('data.[]',.

然而,有一个更简单的方法:

{{order-detail data=model.firstObject}}

因为 ember 将 firstObjectlastObject 添加到数组。