【问题标题】:Angular, button validation work in the wrong order角度,按钮验证以错误的顺序工作
【发布时间】:2019-01-28 19:31:45
【问题描述】:

我在 Angular 7 中有一个复选框

当我刷新我的页面时,好的价值就在这里

但是当我点击复选框时,值是错误的

我的 html 中有我的代码:

<input type="checkbox" [(ngModel)]=material.validated (click)="updateValidation(material)">

在我的 ts 中:

public updateValidation(material: any) {
    this.requestService.updateVersionQuotation(this.quotationId, this.versionId, this.quotation);
}

【问题讨论】:

  • material.validated 为 false,当您单击复选框时,updateValidation 收到值 material.validated false 而不是 true?

标签: angular validation checkbox model


【解决方案1】:

如下修改 HTML

<input type="checkbox" [(ngModel)]="material.validated" (change)="updateValidation(material)">

组件为

material = {};
public updateValidation(material: any) {
    this.requestService.updateVersionQuotation(this.quotationId, this.versionId, this.quotation);
}

【讨论】:

    【解决方案2】:

    当你监听点击事件的时候,你监听的不是输入变化,而是点击事件,这发生在之前。

    尝试收听correct event

    <input type="checkbox" (change)="updateValidation()">
    

    我删除了ngModel 绑定,因为您的函数中似乎不需要它,而且您通常不会同时使用事件和绑定来管理单个输入。

    【讨论】:

    • 谢谢,但需要保留 ngModel : 即默认值
    • @BenjaminBarbé 那么你应该使用[value]
    猜你喜欢
    • 1970-01-01
    • 2015-12-22
    • 1970-01-01
    • 2018-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-18
    • 1970-01-01
    相关资源
    最近更新 更多