Angular 2 change event - model changes

后端 未结 4 1656
有刺的猬
有刺的猬 2020-12-03 04:24

How can I get the values after a model has changed? The (change) event does fire before the model change. I do not want to use event.target.value

相关标签:
4条回答
  • 2020-12-03 04:40

    Use the (ngModelChange) event to detect changes on the model

    0 讨论(0)
  • 2020-12-03 04:43

    That's a known issue. Currently you have to use a workaround like shown in your question.

    This is working as intended. When the change event is emitted ngModelChange (the (...) part of [(ngModel)] hasn't updated the bound model yet:

    <input type="checkbox"  (ngModelChange)="myModel=$event" [ngModel]="mymodel">
    

    See also

    • https://github.com/angular/angular/issues/3406,
    • https://github.com/angular/angular/issues/6311
    0 讨论(0)
  • 2020-12-03 04:59

    This worked for me

    <input 
      (input)="$event.target.value = toSnakeCase($event.target.value)"
      [(ngModel)]="table.name" />
    

    In Typescript

    toSnakeCase(value: string) {
      if (value) {
        return value.toLowerCase().replace(/[\W_]+/g, "");
      }
    }
    
    0 讨论(0)
  • 2020-12-03 05:02

    If this helps you,

    <input type="checkbox"  (ngModelChange)="mychange($event)" [ngModel]="mymodel">
    
    mychange(val)
    {
       console.log(val); // updated value
    }
    
    0 讨论(0)
提交回复
热议问题