我在页面上有一个侧边栏,当我点击图标展开侧边栏时,我想将焦点设置在该侧边栏中的输入上。在侧栏展开之前,该输入显示为:none。如果我在一秒钟的代码中设置了超时,那么尝试将焦点设置为有效,但这并不理想。我们不想setTimeout。有什么我可以做的吗?
<input #quickSearch id="quickSearch" type="text" name="q" class="form-control" placeholder="Search..." />
@ViewChild("inputBox") inputBox: ElementRef;
expand() {
myService.expandSidebar(); // This simply adds a class to show the sidebar
// Only focuses if I setTimeout here. Firing changeDetection also does nothing
inputBox.nativeElement.focus();
}
答案 0 :(得分:0)
我将toggleLeft()函数作为一个promise,并在promise完成后设置焦点。