html - div元素可以使用formControlName吗?

标签 html angular angular2-forms forms

我正在使用 Angular 2。我正在开发一个表单,需要显示地址列表并选择其中一个。我最初使用单选按钮进行相同的操作,但要求已更改,我们将其显示为 div block 。我想知道我们是否可以使用

<div formControlName="controlName">

在像上面这样的 div 元素中?如果不是,那么我们如何将 form Control 与 div 一起使用?

此外,当单击一个地址 block 时,它应该更改背景颜色以更改所选的显示,并且该 block 的右上角应该出现一个勾号。我可以在不使用循环时显示此样式更改,但无法在地址循环中使用样式更改

此表单有多个这样的 block ,并且在每个 block 中地址选择是强制性的,并且在每个 block 中我们将有多个地址。所以有一个主循环,其中有地址循环。

这对于单选按钮效果很好,但我不确定 div 是否也是如此。请指导我。

最佳答案

您可以使用ControlValueAccessor ,并创建一个组件/指令作为新的自定义表单控件

import { Component, forwardRef } from '@angular/core';
import { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';

@Component({
  selector: 'div-select-buttons',
  providers: [
    {
        provide: NG_VALUE_ACCESSOR,
        useExisting: forwardRef(() => DivSelectButtonsComponent),
        multi: true
    }
  ],
  template: `<div>your inputs</div>`,
})
class DivSelectButtonsComponent implements ControlValueAccessor {
    // implementation ControlValueAccessor interface
}

然后将其用作表单控件,如下所示:

<form [formGroup]="form">
    <div-select-buttons formControlName="controlName"></div-select-buttons>
</form>

关于html - div元素可以使用formControlName吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49740757/

相关文章:

angular - 如何在父组件中测试 Angular 事件发射器?

angular - 尝试使用 *ngFor 显示嵌套的 FormGroup,不知道如何访问它

angular - 跳过 Angular 2 控件的 valueChanges 中的编程更改

javascript - JQuery 在 JSFiddle 上工作,但在我的网站上不工作。

html - 如何为多个链接设置 &lt;meta name ="robots"content ="nofollow"> 的异常(exception)?

css - 尝试改造按钮以打开模态窗口

html - UIWebView 获取 HTML 源

html - 如何将 cdkDropList 的元素放入 div 中?

javascript - 如何在 Angular 组件中呈现带有上下文的模板?

Angular 2 自定义输入组件验证(新表单 api)