ember.js - started - ember startup
En Ember 1.13 y más adelante, ¿qué tecla debería usar con cada uno al iterar sobre una matriz de cadenas? (1)
ACTUALIZACIÓN (18 de junio) En Ember 1.13.2 se utiliza la key="@identity"
predeterminada key="@identity"
, para evitar que los usuarios tengan que especificar una key=
para cada invocación de {{each}}
.
@guid
y @item
están en desuso en favor del nuevo valor predeterminado.
https://github.com/emberjs/ember.js/releases/tag/v1.13.2 https://github.com/emberjs/ember.js/pull/11461
================= Respuesta para Ember 1.13, 1.13.1 =========
Podría usar key="@index"
o key="@item"
.
Hay algunos valores especiales para key
(docs) :
-
@index
- El índice del artículo en la matriz. -
@item
- El elemento en la matriz en sí. Esto solo se puede usar para matrices de cadenas o números. @guid
- Genera un identificador único para cada objeto (usaEmber.guidFor
).{{#each widgetNames key="@index" as |widgetName|}} {{component widgetName removeWidget="removeWidget"}} {{/each}}
En Ember 1.13, el siguiente código genera una advertencia:
{{#each widgetNames as |widgetName|}}
{{component widgetName removeWidget="removeWidget"}}
{{/each}}
Donde widgetNames es una matriz de cadenas en un controlador principal.
widgetNames: []
En Ember 1.13 ahora recibo esta advertencia:
ADVERTENCIA: Usar
{{each}}
sin especificar una clave puede llevar a un comportamiento inusual. Por favor, especifique unakey
que identifique un valor único en cada artículo que se itera. Por ejemplo,{{each model key="@guid" as |item|}}
.
Esto sería bastante fácil de corregir en su escenario de modelo típico, pero ¿cómo especifico una clave para una matriz de cadenas?
Editar : esta pregunta maneja una advertencia que ahora obtienes en Ember 1.13 al iterar sobre una matriz de cadenas. Si tocas esta advertencia, no estás buscando explícitamente encontrar el parámetro @index, como el índice de acceso en # cada uno en emberjs . De hecho, la respuesta de Artych muestra otras dos claves posibles de usar que no serían relevantes o estarían presentes en una respuesta al índice de acceso en # cada una de las emberjs, ya que esto es específico del parámetro @index.