2016-10-11 2 views
6

Ich wollte bestimmte Element mehrere Zeit wiederholen, so dass ich *ngFor Direktive mit hardcoded Array wie [1,2,3,4,5,6,7,8,9,10] verwenden und das hat genial funktioniert. Ich habe erreicht, was ich tun wollte.Angular 2 * ngFür nur unterstützt 10 Elemente gleichzeitig in Inline-Vorlage hinzufügen

-Code

@Component({ 
    selector: 'my-app', 
    template: `<h1>My First Angular App</h1> 
     <div *ngFor="let item of [1,2,3,4,5,6,7,8,9,10]"> 
      {{item}}: My Element 
     </div>` 
}) 

Demo Plunkr

Aber sobald ich die Array-Größe mehr als 10 erhöht, beginne ich unten Fehler. Was wirklich nervig ist.

[email protected]?main=browser:355 Unhandled Promise rejection: Unsupported number of argument for pure functions: 11 ; Zone: ; Task: Promise.then ; Value: Error: Unsupported number of argument for pure functions: 11(…) Error: Unsupported number of argument for pure functions: 11

Vorlage

<div *ngFor="let item of [1,2,3,4,5,6,7,8,9,10,11]"> 
    {{item}} 
</div>` 

Ich bin neugierig zu wissen, warum dieser Fehler wird, sobald Array-Größe erhöhen, um mehr als 10 passiert? Aber eine andere interessante Sache ist, wenn ich das gleiche Array in Komponente innerhalb Variable items= [1,2,3,4,5,6,7,8,9,10,11] und items in *ngFor setzen und es hat funktioniert.

Gibt es einen Grund für diesen Sonderfall? Parden Sie mich, wenn ich etwas einfach/dummes verpasse. Diese

Problem Plunkr

+0

Hallo, ich bin eine harte Zeit, http://stackoverflow.com/a/41039141/3297613 diese Aufgabe zu erreichen. Hier ist das Demo plunkr https://plnrkr.co/edit/B5ucnBONC55WTR3VnFBr?p=preview. Meine App hat einen gemeinsamen Dienst, aber ich weiß nicht, wie ich einen beobachtbaren Dienst für diesen allgemeinen Dienst erstellen und alle anderen Dienste so einrichten kann, dass er diesen bestimmten Dienst abonniert. Ich möchte nur alle Service-Daten löschen, sobald der Benutzer ausgeloggt ist. –

Antwort

4

ist nur eine Einschränkung der Angular2 Templateparser Komplexität im Parser (mit Absicht) zu vermeiden. Es ist normalerweise eine gute Idee, Daten in der Komponenteninstanz trotzdem zu behalten.

https://github.com/angular/angular/blob/d972d8235458a6e65819f96ee56da059ec76321b/modules/%40angular/compiler/src/view_compiler/util.ts#L82

+0

kann ich eine Referenz bekommen, die das gleiche Ding erwähnt, warum die Nummer nur 10 ist? –

+0

Ich denke, ich habe das funktioniert in der Beta-Version, möglicherweise Team refaktoriert etwas und brach etwas: p –

+0

sollte es nicht sein, weil wir Pipe auf meinem Ausdruck nicht haben. Es kann der Fall sein, dass '* ngFor' implizit etwas tut –

Verwandte Themen