角度验证器和双向绑定问题

时间:2019-12-24 15:46:02

标签: angular angular-material

可以通过以下链接访问我的源代码:

https://stackblitz.com/edit/angular-umszww

我已经为部门和系统字段设置了双向绑定。 我点击“添加新的Calltree”,一个模式弹出窗口,然后 例如,我从分区下拉框中选择“ A1”。 之后,在“系统”字段中输入“ ABC”, 最后,我点击“保存”按钮。

我希望控制台显示以下内容:

CallTree {division: "A1", systemName: "ABC"}

但是,控制台实际上应该显示以下内容:

CallTree {division: "A1", systemName: ""}

我尝试在下拉框中选择其他值,除法值会相应更改, 但是,systemName值不会相应更改,您能告诉我为什么吗?

2 个答案:

答案 0 :(得分:1)

您表单的值将在this.myForm.value中,而不是this.callTree

您的保存功能应如下所示:

save() {
  if (this.myForm.valid) {
    console.log(this.myForm.value);
  } else {
    this.validateAllFormFields(this.myForm);
  }
}
  

这里是Working Sample Code供您参考。

答案 1 :(得分:1)

如果您想比this.callTree对象更有价值

您只需要替换保存功能

save() {
     if (this.myForm.valid) {
      Object.assign(this.callTree,this.myForm.value);
      console.log(this.callTree);
    } else {
        this.validateAllFormFields(this.myForm);
    }
  }

希望这对您有用。

如果您想了解更多,请告诉我。

谢谢