Web 使用角度2+检测输入焦点;
我正在尝试创建一个自动完成列表,该列表在您键入时显示,但在您单击文档的其他位置时消失。如何使用Angular 2检测表单输入的焦点。Angular 1有ng焦点,但我认为Angular 2不再支持这一点Web 使用角度2+检测输入焦点;,web,typescript,angular,Web,Typescript,Angular,我正在尝试创建一个自动完成列表,该列表在您键入时显示,但在您单击文档的其他位置时消失。如何使用Angular 2检测表单输入的焦点。Angular 1有ng焦点,但我认为Angular 2不再支持这一点 <input id="search-box" type="search" class="form-control [(ngModel)]=query (keyup)=filter()> <div id="search-autocomplete" *ngIf="filte
<input id="search-box" type="search" class="form-control [(ngModel)]=query (keyup)=filter()>
<div id="search-autocomplete" *ngIf="filteredList.length > 0">
<ul *ngFor="#item of filteredList" >
<li > <a (click)="select(item)">{{item}}</a> </li>
</ul>
</div>
0”>
- 有
聚焦
和模糊
事件:
<input (blur)="onBlur()" (focus)="onFocus()">
您可以使用ngControl指令跟踪表单字段的更改状态和有效性
<input type="text" ngControl="name" />
状态:控件的值已更改
ng-dirty
ng-pristine
状态:控件的值有效
ng- valid
ng- invalid
对于那些使用@angular/material
的用户,您可以获得对MatInput
实例的引用,该实例实现了MatFormFieldControl
接口,该接口公开了一个漂亮的聚焦的
属性
您也可以使用@angular/cdk中的FocusMonitor
focused=false;
构造函数(fb:FormBuilder、专用fm:FocusMonitor、专用elRef:ElementRef){
...
fm.monitor(elRef.nativeElement,true).subscribe(origin=>{
这个。聚焦=!!原点;
this.stateChanges.next();
});
}
恩贡德斯特罗(){
...
this.fm.stopMonitoring(this.elRef.nativeElement);
}
有帮助,但似乎没有提供焦点状态。有帮助,但问题是焦点状态。FormControl没有明确提供焦点状态。非常好!很高兴知道我们可以这样动态更改显示。
ng- valid
ng- invalid