вложенные каждый и условные ifs - PullRequest
0 голосов
/ 09 октября 2019

Это мой массив объектов. Я пытаюсь использовать руль, чтобы создать что-то вроде этого. Как мне этого добиться? Возможно ли это даже с рулем?

var employee=[
           {name: "Ahmed", position: "head"},
           {name: "Matt", position: "TA"},
           {name: "Tai", position: "head"},
           {name: "Buddy", position: "instructor"},
           {name: "Collin", position: "instructor"}
       ]

Голова

   * Ahmed
   * Tai

Инструктор

    * Buddy
    * Collin

ТА

    * Matt

Я могунапечатайте имена, используя #each helper

<ul class="people_list">
  {{#each people}}
    <li id="{{this.name}}">{{this.name}}</li>
  {{/each}}
</ul>

Обновление:

Итак, я обновил код, и он все еще не работает

var employeeObject=employeeTemp
var context={people:employeeObject}
var html=template(context)

Вотшаблон руля

   {{#each people}}
    <h2>{{@key}}</h2>
    <ul class="people_list">
        {{#each this}}
            <li id="{{this.name}}">{{ this.name }}</li>
        {{/each}}
    </ul>
{{/each}}

1 Ответ

0 голосов
/ 09 октября 2019

Создайте помощника array для сбора данных с помощью position

var employee=[
  {name: "Ahmed", position: "head"},
  {name: "Matt", position: "TA"},
  {name: "Tai", position: "head"},
  {name: "Buddy", position: "instructor"},
  {name: "Collin", position: "instructor"}
];

var employeeTemp = [];

for(var e of employee) {
  if(!employeeTemp[e.position])
    employeeTemp[e.position] = [];
    employeeTemp[e.position].push(e);
}

employee = employeeTemp;

рулей:

{{#each employee}}
    <h2>{{@key}}</h2>
    <ul class="people_list">
        {{#each this}}
            <li id="{{this.name}}">{{ this.name }}</li>
        {{/each}}
    </ul>
{{/each}}
...