我对将数据发送到余烬模板有疑问。我有一个数据数组:
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” 。我怎样才能解决这个问题?
答案 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,而与余烬无关。