0
ngForで変数を双方向バインドすると、変数の値に応じてHTML要素が動的に作成されます。ここでngForで変数をバインドする際の問題
は私がやろうとしています何を示すフィドルです:私は4にrepeatNumber
を初期化しているためhttps://plnkr.co/edit/nmo5zwnSQjTHBk8YxvOJ?p=preview
は当初、ハロー4回表示されます。しかし、私はその値を変更すると、こんにちは出力はの多くの数を繰り返す必要回。ここで
は私AppComponentです:
AppComponent:
import {Component} from 'angular2/core';
import {RepeatPipe} from './pipe';
@Component({
selector: "my-app",
template: `
<div>
<input type="text" value="5" [(ngModel)]="repeatNumber"/>
<label>Repeat Number: {{repeatNumber}}</label>
<div *ngFor='#i of repeatNumber | repeat'>
Hello
</div>
</div>
`,
pipes: [RepeatPipe]
})
export class AppComponent{
repeatNumber: number = 4;
}
ここでは、HTML要素を繰り返すのに役立ちますCustomPipeです:
import {Pipe, PipeTransform} from 'angular2/core';
@Pipe({
name: 'repeat'
})
export class RepeatPipe implements PipeTransform{
transform(value) {
return (new Array(value)).fill(1);
}
}
おかげでたくさん。これをどのようにデバッグしたか教えてください。コンソールにエラーが表示されていませんでした。 – takeradi
** new Array( '5')**は有効な構文ですが、* 5 *が数字のときに5つの要素を作成する代わりに、文字列の値が5のArrayを作成するため、エラーはありませんでした。パイプで返される内容を表示するために、パイプ変換にconsole.logを追加しました。 – tibbus
しかし、コンソールには、数字に変換しなくても、入力4に対して '[1,1,1,1]'と表示されます。それは '['1'、 '1'、 '1'、 '1']'と表示されますか? – takeradi