ngFor rufen Sie die Funktion Angular2
Folgende Werke:
*ngFor="let child of items || []; let i = index;"
Diese nicht:
*ngFor="let child of items || []; let specialVersionOfI = someFunction(index);"
Bekomme ich:
Parser Error: Unexpected token (, expected identifier, keyword, or string at column 56 in [ngFor let child of items |
Was ist die Argumentation hinter diesem, und gibt es eine alterantive?
- Ich denke
items || []
ist vielleicht verwirrend-parser, ändern Sie es zu(items || [])
wrap mit einer Klammer - Ich bekomme immer noch das gleiche Problem, ohne es leider nicht 🙁
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sehr viel besser lesbar werden version mit mapping in der Komponente, sth wie:
this.items.map((child, i) => {
child['specialVersionOfI'] = this.someFunction(i);
return child;
})
und dann im template einfach nur
{{child.specialVersionOfI}}
Verwenden Sie die Funktion später in der Schleife nicht, wenn Sie ordnen Sie die index.
Könnte man auch manipulieren des Arrays in das Modell und speichern Sie den index in eine zweite parallel-array, dann auf es in der Vorlage.
*ngFor
Arbeit ist, dass es eine Zucker-syntax über einige andere Bindungen. Wenn der Winkel kompilieren ausgeführt wird, ist es kompiliert in mehrere Bindungen. Die syntax von ngFor ist nicht gut dokumentiert (zumindest konnte ich nicht finden ein umfassenden Leitfaden, wie Sie die Analyse-Arbeit, die gegenwärtig), so ist es besser, lassen Sie es so einfach wie möglich und fügen Sie dann Ihre eigene Logik innerhalb der Schleife, da @BeetleJuice vorgeschlagen