我正在使用 Angular 5 开发一个前端应用程序,我需要隐藏一个搜索框,但是单击一个按钮时,搜索框应该会显示并聚焦。
我尝试了一些在 StackOverflow 上找到的带有指令的方法,但都没有成功。
这是示例代码:
@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(); }
搜索框未设置为焦点。
我怎样才能做到这一点?
像这样修改节目搜索方法
showSearch(){ this.show = !this.show; setTimeout(()=>{ // this will make the execution after the above boolean has changed this.searchElement.nativeElement.focus(); },0); }