Подтвердить что ты не робот

В Ember 1.13 и более поздних версиях, какой ключ я должен использовать с каждым при итерации по массиву строк?

В Ember 1.13 следующий код генерирует предупреждение:

{{#each widgetNames as |widgetName|}}
  {{component widgetName removeWidget="removeWidget"}}
{{/each}}

Где widgetNames - это массив строк в родительском контроллере.

widgetNames: []

В Ember 1.13 теперь я получаю это предупреждение:

ПРЕДУПРЕЖДЕНИЕ. Использование {{each}} без указания ключа может привести к необычным поведение. Укажите key, который идентифицирует уникальное значение в каждый элемент повторяется. Например. {{each model key="@guid" as |item|}}.

Это было бы достаточно легко установить в типичном сценарии модели, но как указать ключ для массива строк?

Изменить. Этот вопрос обрабатывает предупреждение, которое вы теперь получаете в Ember 1.13 при итерации по массиву строк. Если вы нажмете это предупреждение, вы явно не найдете параметр @index, например Доступ к индексу в #each в emberjs. Infact, ответ Artych показывает два других возможных ключа для использования, которые не были бы релевантными или присутствовали бы в ответе на Доступ к индексу в #each в emberjs, поскольку это относится к @самого индекса.

4b9b3361

Ответ 1

ОБНОВЛЕНИЕ (июнь 18) В Ember 1.13.2 используется значение по умолчанию key="@identity", чтобы запретить пользователям указывать key= для каждого вызова {{each}}.

@guid и @item устарели в пользу нового значения по умолчанию.

https://github.com/emberjs/ember.js/releases/tag/v1.13.2 https://github.com/emberjs/ember.js/pull/11461

================= Ответ для Ember 1.13, 1.13.1 =========

Вы можете использовать key="@index" или key="@item".

Есть несколько специальных значений для key (docs):

  • @index - индекс элемента в массиве.
  • @item - элемент в самом массиве. Это можно использовать только для массивов строк или номера.
  • @guid - Создайте уникальный идентификатор для каждого объекта (использует Ember.guidFor).

    {{#each widgetNames key="@index" as |widgetName|}}
       {{component widgetName removeWidget="removeWidget"}}
    {{/each}}