【问题标题】:How to set rest values based on default checkbox using Angular2如何使用Angular2根据默认复选框设置休息值
【发布时间】:2021-06-27 13:43:44
【问题描述】:

您好,我正在使用带有 Bootstrap 的 Angular8,这里我使用了响应式表单,当我选中 Make Default 复选框时,Flowers 行(邮件、电子、交付和接收)中的值应该被复制到相同的位置行。

如果传真号码格式不正确,如何在特定行收件人下方显示错误消息。

Ts:

 checkAll(ev) {
    const control = <FormArray>this.exampleForm.get("printList");
    if (!this.all) {
      this.printListArray.forEach(x => (x.value = false));
      control.patchValue(this.printListArray);
    } else {
      this.printListArray.forEach(x => (x.value = true));
      control.patchValue(this.printListArray);
    }
    console.log(control.value);
  }

  isAllChecked() {
    this.all = !this.all;
  }

DEMO

【问题讨论】:

    标签: javascript angular


    【解决方案1】:

    你的代码应该更像下面的代码

      checkAll(ev) {
        const control = <FormArray>this.exampleForm.get("printList");
        console.log(this.all);
        if (this.all) {
          this.all = false;
          this.printListArray.forEach(x => (x.electronics = false));
          control.patchValue(this.printListArray);
        } else {
          this.all = true;
          this.printListArray.forEach(x => (x.electronics = true));
          control.patchValue(this.printListArray);
        }
      }

    主要区别在于,我不是更改xvalue 字段,而是更改electronics 字段,因此当您修补后者的表单时,this.printListArray 将在适当的状态。

    在我建议的实现中,您将能够切换Electronics 行中的所有checboxes

    请记住,printListArray 不是FormGroup/FormControl 的数组形式,它是一个常规对象数组,因此通常存在于FormControl 中的字段value 不存在。

    【讨论】:

    • 感谢您的回复,但抱歉我无法运行输出
    • 运行输出是什么意思?
    • 我试过这个链接,但我的要求不同,在第一行,(鲜花行),我们有邮件,电子产品,交付下拉菜单,收件人,当勾选默认值时,邮件值是多少,电子价值、交付下拉值、鲜花行存在接收值,应复制到所有行,例如如果选中,则将字段值(复选框、下拉列表和文本框)复制到所有其他行。
    • 再次检查链接,我已经做到了,因此每当您单击“与第一行相同”按钮时,第一行的值将应用于其余行,逻辑与复选框相同,唯一的区别是这里我更新表单本身而不是元​​素数组
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-28
    • 2017-03-31
    • 1970-01-01
    • 1970-01-01
    • 2015-11-17
    • 2016-03-23
    • 1970-01-01
    相关资源
    最近更新 更多