2017-03-03 6 views
0

Ich versuche, das Dropdown auf einer Variablen zu generieren.Erzeuge Auswahloptionen von einem numerischen Wert

Sagen Sie, wenn die Gesamtmenge 5 ist, muss ich die Dropdown-Optionen als 1,2,3,4,5 generieren.

ich habe es mit angular1 getan, aber es funktioniert nicht für mich

<select> 
     <option *ngFor="let i of arr(totalqty).fill(1)">{{i}}</option> 
    </select> 
+0

Was falsch, es über Typoskript zu tun? – micronyks

+0

@NikhilShah was meinst du? – Sajeetharan

Antwort

3

Sie können es nicht direkt in Ihrer Vorlage.

Tun Sie es in Ihrer Komponente statt, siehe meine Arbeits Demo: https://plnkr.co/edit/6Ma2tkfSKfpzxQmiNQl1?p=preview

Es gibt 2 Möglichkeiten:

  • erzeugen ein Array
  • mit einem Rohr
@Pipe({ name: 'createArrayOfValues' }) 
export class CreateArrayOfValuesPipe implements PipeTranfsform { 
    public transform(qty: number): number[] { 
    if (!qty || isNaN(qty)) return []; 
    return new Array(qty).fill(0).map((v, i) => i + 1); 
    } 
} 

@Component({ 
    selector: 'my-app', 
    template: ` 
    <div> 
     <h2>Hello {{name}}</h2> 
    </div> 
    <select> 
     <option *ngFor="let i of values">{{i}}</option> 
    </select> 
    <select> 
     <option *ngFor="let i of zerovalues; let idx = index;">{{idx + 1}}</option> 
    </select> 
    <select> 
     <option *ngFor="let i of 5 | createArrayOfValues">{{i}}</option> 
    </select> 
    `, 
}) 
export class App { 
    name:string; 
    values = []; 
    zerovalues = []; 

    constructor() { 
    this.name = 'Angular2' 
    this.updateValues(5); 
    } 

    updateValues(qty: number) { 
    this.values = new Array(qty).fill(0).map((v, i) => i + 1); 
    this.zerovalues = new Array(qty).fill(0); 
    } 
} 
Verwandte Themen