2015-06-15 11 views
18

Nel Ember 1.13 il seguente codice genera un avvertimento:In Ember 1.13 e versioni successive quale tasto dovrei usare con ciascuna durante l'iterazione su una matrice di stringhe?

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

Dove widgetNames è un array di stringhe in un controllore genitore.

widgetNames: [] 

In Ember 1.13 ora ottengo questo avvertimento:

AVVISO: Utilizzare {{each}} senza specificare una chiave può portare a insolito comportamento. Specifica uno key che identifica un valore univoco su ogni elemento iterato. Per esempio. {{each model key="@guid" as |item|}}.

Questo sarebbe abbastanza facile da risolvere nello scenario modello tipico, ma come si specifica una chiave per una matrice di stringhe?

Modifica: questa domanda gestisce un avviso che ora si ottiene in Ember 1.13 durante l'iterazione su una matrice di stringhe. Se si preme questo avvertimento, non si sta cercando esplicitamente di trovare il parametro @index come Accessing Index in #each in emberjs. Infatti, la risposta di Artych mostra altre due possibili chiavi da utilizzare che non sarebbero rilevanti o presenti in una risposta allo Accessing Index in #each in emberjs poiché questo è specifico del parametro @index stesso.

+1

possibile duplicato del [Accesso Index in #each a emberjs] (http://stackoverflow.com/questions/19795562/accessing-index-in-each-in-emberjs) –

+1

Questo è cambiato un bel po 'dal momento che le domande originali @Kitler – Dhaulagiri

risposta

31

UPDATE (Jun, 18) In Ember 1.13.2 predefinito key="@identity" viene utilizzata, per impedire agli utenti di dover specificare un key= a ciascun {{each}} invocazione.

@guid e @item sono deprecati a favore del nuovo valore predefinito.

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

risposta ================= per Ember 1.13, 1.13.1 =========

È potrebbe utilizzare key="@index" o key="@item".

ci sono alcuni valori speciali per key(docs):

  • @index - L'indice della voce nella matrice.
  • @item - L'elemento nell'array stesso. Può essere utilizzato solo per gli array di stringhe o numeri.
  • @guid - Genera un identificatore univoco per ciascun oggetto (utilizza Ember.guidFor).

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

risposta aggiornata a causa della versione 1.13.2 di Ember – artych