作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
在方法结束时,我将清除一些字段,这很简单:
this.modelname.fieldname1 = "";
this.modelname.fieldname2 = "";
清除字段后,我希望光标出现在 field1
中。
是否有 Angular2 方法可以做到这一点,还是我只使用老式的 Javascript?
最佳答案
不建议直接在Angular中访问dom。 Angular 提供了渲染器 (Angular2) 和渲染器 2(Angular4) 抽象。
这是在 Angular 2 中的做法:
@Component({
selector: 'my-app',
template: `
<div>
<input #inp id="myInput" type="text">
<button (click)="setFocus()">Set Focus</button>
</div>
`,
})
export class App {
@ViewChild('inp') inp:ElementRef;
constructor(private renderer: Renderer) {
}
setFocus() {
this.renderer.invokeElementMethod(this.inp.nativeElement, 'focus');
}
}
在 Angular4 中,Renderer 被弃用并添加了 Renderer2。 invokeElementMethod 被删除,并且有一个关于它的讨论: https://github.com/angular/angular/issues/13818#issuecomment-297815331
这是 Angular 4 的方式:
let onElement = this.renderer2.selectRootElement('#myInput');
onElement.focus();
关于angular - 有没有一种 Angular2 方法可以专注于输入字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43689532/
我有一个 Collection View 并以这样一种方式排列它,即在屏幕的一侧有一个单独的列,并且根据焦点中的集合项替换内容。 如果对某个项目的关注超过 0.5 秒,我希望能够换出内容。 这是我目前
这是一种经常出现的情况,对我来说永远不会太容易。我想我会问其他人如何处理它。 想象一下,如果 demo=60 命令行参数的处理是这样完成的: if DemoOptionSpecified() {
我是一名优秀的程序员,十分优秀!