2016-07-10 5 views
1

Ich bin neu in Angular2. Ich möchte zwei Array in einem li holen wie unten:Wie benutze ngFor um zwei Array zu holen

[array1] in [array2]

zum Beispiel, ich habe zwei Arrays, die erste für Namen und die zweite für Alter und ich haben will eine Ausgabe wie folgt aus:
Name in Alter

und auch weiß ich, dass es möglich ist, ein 2D-Array für diese zu verwenden, aber ich will nicht. Ich würde gerne wissen, was ist mit ngFor möglich?

es ist mein Eckige Code:

@Component({ 
    selector:'peaple', 
    template: ` 
     <h2>{{title}}</h2> 
     <ul> 
      <li *ngFor="#name of names"> 
       {{name}} in {{ages}} age 
      </li> 
     </ul> 
     ` 
}) 
export class PeapleComponent{ 
    title = "Example"; 
    Names =["N1","N2","N3"]; 
    Ages=["20","15","37"]; 
} 

und ich möchte ein Ergebnis wie folgt aus (aber ohne Format in Arrays zu ändern)

  • N1 in 20 Jahren
  • N2 in 15 Jahren
  • N3 in 37 Alter
  • +0

    Können Sie setzen Ihre Arrays hier? Vielen Dank! – AngJobs

    +0

    Könnten Sie bitte ein konkretes Beispiel geben, was Sie möchten? Das ist mir momentan sehr unklar. –

    +0

    Ja, aber da dieser Code kein gültiger Code ist, können wir nur raten, was er tun soll. Was sollte das Ergebnis sein? Welchen HTML möchten Sie generieren? Ich schätze, dass Sie das tun wollen, was Pierre Urban's Antwort zeigt, aber vielleicht nicht. –

    Antwort

    4

    Try this:

    <ul> 
         <li *ngFor="let i of Names; let k = index"> 
         {{i}} in {{Ages[k]}} age 
         </li> 
        </ul> 
    
    2

    Das sieht eher wie ein Datenmodellierungsproblem für mich aus.

    Ich würde Ihnen vorschlagen, beide Arrays in eine mit der folgenden Person Schnittstelle zu fusionieren:

    { name: string, age: number } 
    

    So Ihr Array eine Art von Person haben würde []. Dann in Ihrer Vorlage können Sie die Strukturrichtlinie * ngFor wie folgt verwendet werden:

    <li *ngFor="let person of array"> 
        {{person.name}} is {{person.age}} year old 
    </li> 
    
    +1

    Wenn Sie wirklich beide Arrays behalten wollen, dann können Sie den Index von * ngFor = "Namen von Namen verwenden; lassen Sie i = indexieren" verwenden, dann {{Name}} im Alter von {{age [i]}}. –

    +0

    vielen dank :) –

    Verwandte Themen