有没有办法消除模板指令(ngModelChange)的影响?

或者,用另一种方式做这件事最不痛苦的方式是什么?

我看到的最接近的答案是:How to watch for form changes in Angular 2?

例如,我有一个文本输入,我想获得onChange更新,但我想从每次击键中消除它:

<input type="text" class="form-control" placeholder="Enter a value" name="foo" [(ngModel)]="input.event.value" (ngModelChange)="onFieldChange($event, input)">

go 盎司onFieldChange()

推荐答案

EDIT

在Angular的新版本中,您可以使用ngModelOption中的updateOn来设置'blur'.Link to angular.io documentation

代码示例:

<input [(ngModel)]="value"
  [ngModelOptions]="{ updateOn: 'blur' }"
  (ngModelChange)="updateOnlyOnBlur($event)"> 

LEGACY

如果您不想使用formcontrol方法,这里有一种不那么痛苦的解除击键的方法.

搜索组成部分html

<input type="text" placeholder="Enter a value" name="foo" [(ngModel)]="txtQuery" (ngModelChange)="onFieldChange($event)">

搜索组成部分ts

    export class SearchComponent {
    
         txtQuery: string; // bind this to input with ngModel
         txtQueryChanged: Subject<string> = new Subject<string>();
    
         constructor() {
          this.txtQueryChanged
            .debounceTime(1000) // wait 1 sec after the last event before emitting last event
            .distinctUntilChanged() // only emit if value is different from previous value
            .subscribe(model => {
              this.txtQuery = model;
    
              // Call your function which calls API or do anything you would like do after a lag of 1 sec
              this.getDataFromAPI(this.txtQuery);
             });
        }
    
    onFieldChange(query:string){
      this.txtQueryChanged.next(query);
    }
}

Angular相关问答推荐

Angular中绑定嵌入标签src属性的问题

Angular 空变量使用组件之间的共享服务

如何从URL中角下载图片?

懒惰加载角404路径

Angular 17+独立配置中main.ts bootstrap 调用的最佳实践

如何在独立应用程序中全局禁用基于媒体查询的Angular 动画?

如何在 Angular 中每 x 秒从 REST api 加载数据并更新 UI 而不会闪烁?

获取 Angular 中所有子集合 firestore 的列表

Angular MSAL - 对 Bearer 令牌和 AUD 属性的怀疑

NX MFE Angular 模块联合无法访问远程微前端

在 Angular material 表单元格中渲染 html

错误:在工作区外运行 Angular CLI 时,此命令不可用

异步管道模板中的局部变量(Angular 2+)

Angular2 ngFor跳过第一个索引

如何在 Angular 2 中正确设置 Http 请求标头

Angular 2:formGroup 需要一个 FormGroup 实例

RxJS:takeUntil() Angular 组件的 ngOnDestroy()

Angular 2表单验证重复密码

如何导航到同级路由?

Angular 4.3 HttpClient:拦截响应