2017-03-03 15 views
0

変数に基づいてドロップダウンを生成しようとしています。数値から選択オプションを生成

合計金額が5の場合、1,2,3,4,5というドロップダウンオプションを生成する必要があります。

私はangular1でそれを行っているが、それは私のためにあなたがあなたのテンプレートで直接それを行うことはできません

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

を使用してアレイ

  • を生成typescriptで間違っていますか? – micronyks

  • +0

    @NikhilShahあなたはどういう意味ですか? – Sajeetharan

    答えて

    3

    を動作しません。

    私の作業のデモを参照してください、代わりにあなたのコンポーネントでそれを実行します。https://plnkr.co/edit/6Ma2tkfSKfpzxQmiNQl1?p=preview

    2通りの方法があります。

    • はパイプいただきまし
    @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); 
        } 
    } 
    
    関連する問題