Devo creare un elenco di checkbox in modo dinamico così ho usato * ngFor per iterare la matrice di oggetti tutto funziona fino all'iterazione. il problema si verifica quando imposto il valore dell'attributo for
nel tag etichetta. angolare ha lanciare l'errore:Impossibile collegarsi a "for" poiché non è una proprietà nativa conosciuta angular2
non può legarsi a 'per' dato che non è un angular2 noto proprietà nativa
nuovo messaggio di errore
non gestita Promessa rifiuto: Template errori di analisi: impossibile eseguire il binding a "for" poiché non è una proprietà nota di "etichetta".
<div *ngFor="#batch of batch_array">
<label for="{{batch.id}}"><input type="checkbox" [value]="batch.id" id="{{batch.id}}"
(click)="batchSelectedEevent(batch.id)" /> {{batch.batch_name}}
</label>
</div>
Ecco il mio plnkr mostrando di errore: http://plnkr.co/edit/aAQfWvHc7h7IBuYzpItO?p=preview
che cosa è sbagliato qui nel mio codice?
wow funziona benissimo, grazie! potrei sapere perché usare 'attr' in' attr.for' invece di semplicemente 'for'? –
Con 'attr.for' devi esplicitamente optare per attribuire il binding perché il binding dell'attributo è costoso. Gli attributi si riflettono nel DOM e le modifiche richiedono ad esempio di verificare se i selettori CSS sono registrati che corrispondono a questo set di attributi. L'associazione di proprietà è solo JS ed economica, quindi l'impostazione predefinita. –
"L'associazione di proprietà è solo JS". Non direi proprio questo. Ci sono alcune proprietà che non hanno attributi corrispondenti - ad es., La proprietà 'textContent' molto usata - in modo che il binding a queste proprietà determini anche che il DOM venga aggiornato. –