我有一个表单输入,我想输入blur
(散焦),并在单击按钮时为空。
在AngularJS中,我是这样在 Controller 中完成此操作的:
angular.element('#search-input').val('');
angular.element('#search-input').blur();
在Angular(4.4.4)中,我的工作方式如下:
$('#search-input').val('');
$('#search-input').blur();
但是我宁愿不使用jQuery。在Angular中执行此操作的正确方法是什么?
这是整个组件:
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'pb-header',
templateUrl: './header.component.html'
})
export class HeaderComponent implements OnInit {
private searchActive: boolean;
constructor() {
this.searchActive = false;
}
ngOnInit() {
}
toggleSearch = function () {
if (this.searchActive) {
this.searchActive = false;
$('#search-input').val('');
$('#search-input').blur();
} else {
this.searchActive = true;
}
};
}
最佳答案
您可以使用NgForm
的reset
方法:
@ViewChild(NgForm)
public form:NgForm;
form.reset(<value>);
同样,也不需要模糊处理,因为您单击的是按钮,它将获得焦点;如果没有,请设置按钮的
tabindex
属性。