我有一个表单输入,我想输入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;
    }

  };

}

最佳答案

您可以使用NgFormreset方法:

@ViewChild(NgForm)
public form:NgForm;


form.reset(<value>);

同样,也不需要模糊处理,因为您单击的是按钮,它将获得焦点;如果没有,请设置按钮的tabindex属性。

09-10 09:31
查看更多