角度4集中隐藏元素

时间:2017-08-23 17:36:50

标签: angular

我在页面上有一个侧边栏,当我点击图标展开侧边栏时,我想将焦点设置在该侧边栏中的输入上。在侧栏展开之前,该输入显示为: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();
}

1 个答案:

答案 0 :(得分:0)

我将toggleLeft()函数作为一个promise,并在promise完成后设置焦点。