【发布时间】:2018-07-27 14:53:57
【问题描述】:
In this plunk 我正在尝试将焦点设置在kendo-window 打开时的第一个字段上(单击按钮打开窗口)。我用ViewChild 声明了该字段,但是当窗口打开时它是undefined,因为程序启动时尚未创建窗口。
当我尝试设置焦点时,我得到Cannot read property 'nativeElement' of undefined(见控制台)。
创建窗口后是否可以使用ViewChild 引用变量?窗口打开时如何设置焦点在第一个字段上?
@Component({
selector: 'my-app',
template: `
<div class="example-wrapper">
<button kendoButton (click)="open()">Open window</button>
<kendo-window title="Some title" *ngIf="opened" (close)="close()" [width]="450">
<form class="k-form">
<input kendoTextBox type="text" name="userId" placeholder="User ID"
#userId class="k-textbox" autofocus>
<input kendoTextBox type="text" name="firstName" placeholder="First Name"
#firstName class="k-textbox">
</form>
</kendo-window>
</div>
`
})
export class AppComponent {
public opened = false;
@ViewChild('userId') uid: ElementRef;
open(){
this.opened = true;
this.uid.nativeElement.focus();
}
close(){
this.opened = false;
}
}
更新
更改了 PLUNK 以显示 autofocus 在第二次打开窗口时不起作用。
【问题讨论】:
标签: angular kendo-ui kendo-ui-angular2