Ich arbeite an einer Front-End-Anwendung mit Angular 5 und muss ein Suchfeld ausblenden, aber auf Knopfdruck sollte das Suchfeld angezeigt und fokussiert werden.
Ich habe einige Möglichkeiten ausprobiert, die in StackOverflow mit Direktive oder so gefunden wurden, kann aber keinen Erfolg haben.
Hier ist der Beispielcode:
@Component({
selector: 'my-app',
template: `
<div>
<h2>Hello</h2>
</div>
<button (click) ="showSearch()">Show Search</button>
<p></p>
<form>
<div >
<input *ngIf="show" #search type="text" />
</div>
</form>
`,
})
export class App implements AfterViewInit {
@ViewChild('search') searchElement: ElementRef;
show: false;
name:string;
constructor() {
}
showSearch(){
this.show = !this.show;
this.searchElement.nativeElement.focus();
alert("focus");
}
ngAfterViewInit() {
this.firstNameElement.nativeElement.focus();
}
Das Suchfeld ist nicht auf Fokus eingestellt.
Wie kann ich das machen?