2015-12-21 48 views
25

配列を繰り返し処理する代わりに、* ngForループを定義した回数だけ実行できますか?配列を繰り返すのではなく、ループを定義した回数だけ* ngFor?

たとえば、リストを5回繰り返したい場合、ループはC#のようなものになります。あなたのコンポーネント内

<ul> 
    <li><span>1</span></li> 
    <li><span>2</span></li> 
    <li><span>3</span></li> 
    <li><span>4</span></li> 
    <li><span>5</span></li> 
</ul> 
+1

1つの方法は@TGHで述べたとおりで、2番目の方法は疑問に記載されているforループを使用して空配列の[i]の値をプッシュし、その配列の* ngForを開始することもできます。これらの2つの方法のいずれかを選択することができます。 –

答えて

18

後述のように、あなたは数(ES6)の配列を定義することができますが:

for (int i = 0; i < 4; i++){ 

} 

望ましい結果

export class SampleComponent { 
    constructor() { 
    this.numbers = Array(5).fill(0).map((x,i)=>i); 
    } 
} 

アレイの作成のために、このリンクを参照してください。 Tersest way to create an array of integers from 1..20 in JavaScript

あなたはその後、ngForでこの配列を反復処理することができます。

@View({ 
    template: ` 
    <ul> 
     <li *ngFor="let number of numbers">{{number}}</li> 
    </ul> 
    ` 
}) 
export class SampleComponent { 
    (...) 
} 

またはまもなく:

@View({ 
    template: ` 
    <ul> 
     <li *ngFor="let number of [0,1,2,3,4]">{{number}}</li> 
    </ul> 
    ` 
}) 
export class SampleComponent { 
    (...) 
} 

が、それはあなたのお役に立てば幸い、 ティエリー

編集:固定フィルの文とテンプレート構文。

+3

私は 'Array(5).fill()...'に0がないと思います。 'Array(5).fill(0)'である必要があります。ドキュメントからhttps://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/fill – brijmcq

+1

'#number'は' let number'でなければなりません –

+0

また、 'Array.from( .fill(0) ' – kernel

関連する問題