1
Je veux retarder l'événement de clé dans angulaire 4. Je veux juste attendre 500 ms pour déclencher l'événement clé. En essayant de suivre l'exemple dans angular.io tutorial , il apparaît que updateText() n'est pas appelé par observable. Ressemble à un problème avec observable.Comment retarder l'événement key up en angulaire?
@Component({
selector: 'my-app',
template: `
<div>
<h2>Key event Demo {{name}}</h2>
</div>
<div>
<h4> KeyUp Event: </h4>
<input #keyUpInput (keyup)="onKeyUp(keyUpInput.value)">
<div>
<h5> KeyUp Text: </h5>
<p>{{values}}</p>
</div>
</div>
<div>
<h4> KeyUp Event With Delay: </h4>
<input #keyUpInputDelay (keyup)="onKeyUpDelay(keyUpInputDelay.value)">
<div>
<h5> KeyUp Text: </h5>
valuesDelay: <p>{{valuesDelay}}</p>
valuesDelayText: <p>{{valuesDelayText}}</p>
</div>
</div>
`,
})
export class App implements OnInit {
public name:string;
public values:string = '';
public valuesDelay:string = '';
public valuesDelayText:string = '';
private typeTerm = new Subject<string>();
constructor() {
this.name = `Angular! v${VERSION.full}`
}
ngOnInit(): void {
this.typeTerm.debounceTime(300).distinctUntilChanged().map(term => this.updateText(term));
}
public onKeyUp(value: string): void {
this.values += value + ' | ';
}
public onKeyUpDelay(value: string): void {
this.valuesDelay += value + ' | ';
this.typeTerm.next(value);
}
public updateText(value: string): void {
this.valuesDelayText += value + ' | ';
}
}
s'il vous plaît ne pas ajouter la réponse au corps de question. J'ai annulé votre modification. Si vous avez trouvé une solution, vous êtes encouragé à ajouter une réponse à votre propre message – bolov