Отправка данных в шаблон Ember - PullRequest
0 голосов
/ 16 октября 2018

У меня есть вопрос об отправке данных в шаблон ember.У меня есть массив с данными:

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;
    }
}); 

В моем файле шаблона от ember я запускаю этот код:

<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 голосов
/ 16 октября 2018

просто удалите данные, которые вы не хотите показывать из data_prepped.Может быть так:

экспорт по умолчанию Route.extend ({model () {return data_prepped.filter (d => d.Categorie === 'Type huishouden');}});

Далее вы, вероятно, захотите эту динамику, поэтому вы добавляете динамический параметр в свой маршрут.Таким образом, в вашем маршрутизаторе вы можете сделать это:

this.route('category', { path: '/category/:cat' });

Затем вы можете сделать это в своем model() хуке:

model({ cat }) {
    return data_prepped.filter(d => d.Categorie === cat);
}

И затем вы можете использовать URL-адреса, такие как /category/Type%20huishouden дляполучить доступ к определенной категории.(%20 выходит за пределы пробела)


Однако для реального приложения вам, вероятно, не нужны ваши данные в исходном коде.И тогда возникает вопрос: откуда берутся ваши данные, как вы их получаете и как вы можете получить только данные для определенной категории.Но это в основном ваш бэкэнд API, а не связанный с ним ember.

...