OPV*_*OPV 3 devextreme angular devextreme-angular angular7 angular8
我在 Angular 应用程序中使用devExtreme UI 框架。
在文档中我找到了如何设置focus它说使用method focus()
但没有重点DxTextBoxComponent
如何设定焦点?
我的代码是:
@ViewChild("name", { static: false }) public inputName: DxTextBoxComponent;
ngAfterViewInit() {
this.inputName.instance.focus();
}
Run Code Online (Sandbox Code Playgroud)
HTML 是:
<dx-text-box #name>
Run Code Online (Sandbox Code Playgroud)
没有效果
小智 5
你的代码看起来是正确的。确保您导入了所有必需的依赖项和 DxTextBoxComponent,并且页面上只有一个具有此标识符的 TextBox。此代码在 CodeSandbox 中不起作用(我相信此问题特定于 CodeSanbox),但它在本地项目和 DevExtreme Widget Gallery中起作用。在那里添加以下代码
应用程序组件.html
<dx-text-box #name value="John Smith"></dx-text-box>
Run Code Online (Sandbox Code Playgroud)
应用程序组件.ts
//additional imports
import { ViewChild } from '@angular/core';
import { DxTextBoxComponent } from 'devextreme-angular';
//replace the AppComponent with this code
export class AppComponent {
@ViewChild("name", { static: false }) inputName: DxTextBoxComponent;
ngAfterViewInit() {
this.inputName.instance.focus();
}
}
Run Code Online (Sandbox Code Playgroud)
我录制了一个截屏视频。
如果 ViewChild 指令不起作用,您可以使用onInitialized事件处理程序获取组件的实例:
应用程序组件.html
<dx-text-box #name (onInitialized)="getInstance($event)"></dx-text-box>
Run Code Online (Sandbox Code Playgroud)
应用程序组件.ts
export class AppComponent {
inputName: any;
getInstance(e) {
this.inputName = e.component;
}
ngAfterViewInit() {
this.inputName.focus();
}
}
Run Code Online (Sandbox Code Playgroud)
我还在本地和他们的小部件库中发了短信这种方法。它不需要任何额外的导入并且工作正常。
| 归档时间: |
|
| 查看次数: |
8966 次 |
| 最近记录: |