将数据发送到Ember模板

时间:2018-10-15 21:19:55

标签: arrays ember.js ember-data

我对将数据发送到余烬模板有疑问。我有一个数据数组:

var data = [ {
    "Coefficients": "Herkomst ouders: Een van de ouders Nederlands en de andere 
     niet Nederlands",
    "Categorie": "Herkomst",
    "Name": "Een van de ouders Nederlands en de andere niet Nederlands",
    "Gewicht": "-0,08943"
  },  {
    "Coefficients": "Type huishouden: Eenouderhuishouden",
    "Categorie": "Type huishouden",
    "Name": "Eenouderhuishouden",
    "Gewicht": "0,49608"
  }]

关于不同类别(类别),我有很多数据。在同一文件中,我有以下代码:

var data_prepped = [];
for (var i = 0; i < data.length; i++) {

  var new_cat = true;
  for (var j = 0; j < data_prepped.length; j++) {
    if (data_prepped[j].Categorie === data[i].Categorie) {
      new_cat = false;
    }
  }

  if (new_cat) {
    data_prepped.push({
      'Categorie': data[i].Categorie,
      'Antwoorden': []
    });
  }

  for (var j = 0; j < data_prepped.length; j++) {
    if (data_prepped[j].Categorie === data[i].Categorie) {
      data_prepped[j].Antwoorden.push({
        'Coefficients': data[i].Coefficients,
        'Name': data[i].Name,
        'Gewicht': data[i].Gewicht,
      });
    }
  }
}

export default Route.extend({
    model() {
        return data_prepped;
    }
}); 

在余烬的模板文件中,我运行以下代码:

<section class="category">
                    <h1>Algemeen</h1>
                {{#each data_prepped as |data|}}
                        <h5>{{data.Categorie}}</h5>
                    <select class="" name="">
                        {{#each data.Antwoorden as |antwoord|}}                 
                            <option data-weight="{{antwoord.Gewicht}}" name="{{antwoord.Name}}">
                                {{antwoord.Name}}
                            </option>
                        {{/each}}
                    </select>
                {{/each}}
            </section>

这对我有用,但它可以将阵列中的所有数据还给我。但是,我只想要部分数据,例如:“类别”:“类型huishouden” 。我怎样才能解决这个问题?

1 个答案:

答案 0 :(得分:1)

只需从Process.wait中删除您不想显示的数据即可。也许像这样:

导出默认Route.extend({     模型(){         返回data_prepped.filter(d => d.Categorie ==='类型huishouden');     } });

接下来,您可能需要此动态参数,因此您可以在路径中添加动态参数。因此,您可以在路由器中执行以下操作:

data_prepped

然后您可以在您的this.route('category', { path: '/category/:cat' }); 钩中执行此操作:

model()

接下来,您可以使用诸如model({ cat }) { return data_prepped.filter(d => d.Categorie === cat); } 之类的URL来访问特定类别。 (/category/Type%20huishouden逃脱了空间)


但是对于真正的应用程序,您可能不希望数据包含在源代码中。然后的问题是您的数据来自何处,如何获取以及如何仅获取特定类别的数据。但这基本上就是您的后端API,而与余烬无关。