Mehrere Formulare in eine einzige html-angular2

Ich habe den folgenden code :

HTML:

<md2-dialog #techniciansDialog>
  <md2-dialog-title color="primary">Técnicos</md2-dialog-title>
  <form #technicianForm="ngForm">
    <div style="display: table; width: 100%;">
      <div style="display: table; width: 100%;">
        <div style="vertical-align:middle; width:50%; display: table-cell;">
          <md-input-container>
            <input mdInput [(ngModel)]="technician.name" name="nameTechnician" type="text" placeholder="Nome" required>
          </md-input-container>
        </div>
      </div>

      <div style="vertical-align:middle; width:50%; display: table-cell;">
        <md-input-container>
          <input mdInput [(ngModel)]="technician.responsability" name="responsabilityTechnician" type="text"
                 placeholder="Responsabilidade" required>
        </md-input-container>
      </div>
    </div>

    <div style="display: table; width: 100%;">
      <div style="vertical-align:middle; width:50%; display: table-cell;">
        <md-input-container>
          <input mdInput [(ngModel)]="technician.phone" name="phoneTechnician" type="text" placeholder="Telefone"
                 required>
        </md-input-container>
      </div>

      <md-input-container>
        <input mdInput [(ngModel)]="technician.email" name="emailTechnician" type="text" placeholder="Email" required>
      </md-input-container>

      <md-input-container>
        <input mdInput [(ngModel)]="technician.password" name="passwordTechnician" type="password"
               placeholder="Password" required>
      </md-input-container>
    </div>
  </form>
  <md2-dialog-footer>
    <div *ngIf="!update;then content else other_content"></div>
    <ng-template #content>
      <button md-raised-button color="primary" [disabled]="!technicianForm.form.valid"
              (click)="gravarDadosTechnician(); technicianForm.reset()">Criar
      </button>
    </ng-template>
    <ng-template #other_content>
      <button md-raised-button color="primary" [disabled]="!technicianForm.form.valid"
              (click)="sendUpdateDadosTechnician(techniciansDialog); technicianForm.reset()">Atualizar
      </button>
    </ng-template>
    <button md-raised-button color="primary" (click)="closeDialog(techniciansDialog); technicianForm.reset()">Fechar
    </button>
  </md2-dialog-footer>

</md2-dialog>

<md2-dialog #serviceDialog>
  <md2-dialog-title color="primary">Serviços</md2-dialog-title>
  <form #servicesForm="ngForm" name="servicesForm">
    <div style="display: table; width: 100%;">
      <div *ngIf="!update;then divcreate else divupdate"></div>
      <div style="vertical-align:middle; width:50%; display: table-cell;">
        <md-input-container>
          <input mdInput [(ngModel)]="service.name" name="nameService" type="text" placeholder="Nome" required>
        </md-input-container>
      </div>
    </div>

    <div style="display: table; width: 100%;">
      <div style="vertical-align:middle; width:50%; display: table-cell;">
        <md-input-container>
          <input mdInput [(ngModel)]="service.SLA" name="SLA" type="text" placeholder="SLA (HORAS)" required>
        </md-input-container>
      </div>

      <div style="vertical-align:middle; width:50%; display: table-cell;">
        <md-input-container>
          <input mdInput [(ngModel)]="service.description" name="descriptionService" type="text"
                 placeholder="description"
                 required>
        </md-input-container>
      </div>
    </div>
  </form>

  <md2-dialog-footer>
    <div *ngIf="!update;then content else other_content"></div>
    <ng-template #content>
      <button md-raised-button color="primary" [disabled]="!servicesForm.form.valid"
              (click)="gravarDadosServices(); servicesForm.reset()">Criar
      </button>
    </ng-template>
    <ng-template #other_content>
      <button md-raised-button color="primary" [disabled]="!servicesForm.form.valid"
              (click)="sendUpdateDadosServices(serviceDialog); servicesForm.reset()">Atualizar
      </button>
    </ng-template>
    <button md-raised-button color="primary" (click)="closeDialog(serviceDialog); servicesForm.reset()">Fechar</button>
  </md2-dialog-footer>

</md2-dialog>

Beide Formen perfekt funktionieren, wenn ich nicht überprüfen kann, oder ob ich einfach nur zu validieren einer von Ihnen.

Ex:

servicesForm funktioniert gut mit der Validierung, aber wenn ich gehe, um zu füllen das technicianForm es überprüft nicht, auch wenn ich füllen Sie die Felder korrekt.

technicianForm einfach nicht beantworten, es bleibt falsch die technicianForm.form.valid

Also, wenn ich ausziehen #servicesForm, #technicianForm funktioniert perfekt.

Wie kann ich überprüfen diejenigen, die mehrere Formen der Felder, weil ich haben noch 2 Formulare auf der gleichen Seite.

Muss ich noch ein Formular-Validierung auf meine .ts-Datei für jede von Ihnen?

  • Wäre es möglich, jedes Formular in Ihre eigenen verschachtelten Komponente? Es scheint, dass es wäre leichter zu verwalten, ohne so viel code in eine template/Komponente.
  • Ja, aber ich habe das gleiche problem? denn am Ende wird der gleiche code richtig ?
  • Aus Ihrem post, es Klang wie das problem war, der mehrere Formen in einem Bauteil. Wenn Sie Formular 1 in component1 und form 2 in Komponente 2 und verschachteln Sie Sie beide in eine übergeordnete Komponente, dann sollten Sie keine Probleme haben, versuchen zu validieren beiden Formen in der gleichen Komponente, denn Sie würden in verschiedene Komponenten. Oder habe ich es falsch verstehen, Ihr Problem?
  • Hmm, jetzt verstehe ich deinen Punkt, ich werde dies versuchen, vielen Dank!, aber jedes mal, brauche ich mehr als 1-form habe ich zu tun auf diese Weise, das macht mich unangenehm.
  • Okey, ja das hat geklappt, vielen Dank für die Hilfe!
Schreibe einen Kommentar