动态角度反应形式的材料变化检测

时间:2018-07-24 12:40:53

标签: javascript html angular forms material-design

我正在构建一个运行Angular 6的复杂表单应用程序。此应用程序在单独的form-component选择器上通过*ngFor循环在表单本身(question-component)中构建问题。 question-component列出每种类型的表单输入(文本,日期选择器,单选框,复选框等)的HTML,并且根据从form-component传入的问题类型,它将构建必要的HTML。问题组件实例的HTML元素。我正在将(change)question-component的选择器标记上的form-component事件处理一些重要的逻辑。

   <section
      *ngFor="let section of formData"
      class="form-section"
      [hidden]="section.hidden"
      [id]="section.programmaticName">
      <h1 id="{{section.programmaticName}}">{{section.displayName}}</h1>
      <mat-divider></mat-divider>

      <!-- Questions -->
      <div class="question-container" *ngFor="let question of getSectionQuestions(section.programmaticName)">
        <app-question
          [question]="question"
          [hidden]="question.hidden"
          [form]="formData"
          [id]="question.programmaticName"
          (change)="dataChange($event)">
        </app-question>
      </div>
    </section>

在我尝试将Material添加为我的UI之前,一切都工作正常。某些Material的表单元素不支持(change),而是需要它们自己的特定方法(例如,(selectionChange)用于选择,(dateChange)用于日期选择器)。不幸的是,那些与(change)不兼容的元素显然不再能够检测到那些变化。

如果不处理问题级别的更改方法(每个问题类型可以具有自己的更改检测方法),我将如何解决呢?任何建议将不胜感激!

0 个答案:

没有答案