Pho*_*ynh 19 html javascript angular
我的最终目标是让textarea元素自动聚焦于创建.我刚刚想到了一个调用e.target.focus()
事件的解决方案onload
.就像是:
<textarea rows="8" col="60" (load)='handleLoad($event)'>
Run Code Online (Sandbox Code Playgroud)
然后:
handleLoad(e){
e.target.focus();
}
Run Code Online (Sandbox Code Playgroud)
问题是角度无法识别load
事件.
PS:我试过autofocus
一次,但似乎没有用.
dfs*_*fsq 27
您应该能够在ngAfterViewInit钩子中执行此操作:
import { ViewChild, ElementRef, AfterViewInit } from '@angular/core'
// ...
export class Component implements AfterViewInit {
@ViewChild('textarea') textarea: ElementRef
ngAfterViewInit() {
this.textarea.nativeElement.focus()
}
}
Run Code Online (Sandbox Code Playgroud)
在模板中,您需要设置模板变量:
<textarea #textarea rows="8" col="60"></textarea>
Run Code Online (Sandbox Code Playgroud)
<textarea rows="8" col="60" autofocus>
Run Code Online (Sandbox Code Playgroud)
总是更好(并且更简单!)尽可能使用原生DOM API而不是在JavaScript中使用它:)
编辑:以上是不正确的.请参阅下面的评论.
归档时间: |
|
查看次数: |
49417 次 |
最近记录: |