Циклическая обработка двух массивов одновременно и печать на руле Ember - PullRequest
0 голосов
/ 07 ноября 2019

У меня есть два массива NOVNoticeTypeName и NOVNumber, они оба имеют одинаковое количество элементов, теперь я хочу перебрать один из них и вывести значения рядом, как показано ниже:

{{#each  v.NOVNoticeTypeName as |nntn index|}}
  {({{v.NOVNoticeTypeName.[index]}} {{v.NOVNumber.[index]}})
{{/each}}

Я понимаю, что зацикливание - это беспорядок в руле Ember.

Как мне этого добиться?

1 Ответ

0 голосов
/ 08 ноября 2019

Прежде всего, я не разделяю вашего мнения о том, что зацикливание - это беспорядок в шаблонах Ember. Было бы здорово, если бы вы не выдвигали такие мнения как факты. Особенно, если это происходит без каких-либо аргументов.

То, чего вы хотите достичь, может быть сделано с помощью комбинации {{each}} цикла и помощника шаблона. Как показывает ваш пример, цикл {{each}} возвращает текущее значение и индекс. Вы не можете получить доступ к элементу массива напрямую, используя индекс, как в JavaScript array[index] в шаблоне Ember, но вы можете добиться того же с помощью помощника шаблона. Вспомогательный шаблон, назовем его {{object-at}}, который получает индекс в качестве первого и массив в качестве второго аргумента и возвращает array[index].

Давайте рассмотрим пример того, как это будет работать:

{{#let (array 'a' 'b' 'c') as |letters|}}
  {{#let (array '1' '2' '3') as |numbers|}}
    <ul>
      {{#each letters as |letter index|}}
        {{letter}} {{object-at index numbers}}
      {{/each}}
    </ul>
  {{/let}}
{{/let}}

Такой помощник по шаблону не будет сложным. Но вам не нужно беспокоиться, потому что он уже доступен как часть ember-composable-helpers .

...