2017-10-26 1 views
0

Ich habe ein Formular mit einer Vorlage, die verwendet wird, um entweder ein neues Formular zu erstellen oder ein vorhandenes zu laden und zu bearbeiten. Ich habe die Datenbindung an Optionsfeldgruppen angewendet, um sie entsprechend den Daten aus der Datenbank umzuschalten. Auf diese Weise funktionieren die * ngIfs, mit denen die Sichtbarkeit anderer divs geändert wird, aus irgendeinem Grund nicht mehr.* ngIf zum Anzeigen und Ausblenden div funktioniert nicht mehr nach dem Anwenden der Datenbindung

Vor (Sichtbarkeit Makel Werke):

<div class="col-xs-12 col-sm-12"> 
    <fieldset> 
     <input type="radio" formControlName="specificPilot" value="1" [ngClass]="{'td-radio-error': displayMessage.specificPilot}" (check)="radioSetValidator(changeForm.get('generalQuestionsFG.specificPilot'),[changeForm.get('generalQuestionsFG.pilotTransits')])">Yes 
     <input type="radio" formControlName="specificPilot" value="0" [ngClass]="{'td-radio-error': displayMessage.specificPilot}" (check)="radioSetValidator(changeForm.get('generalQuestionsFG.specificPilot'),[changeForm.get('generalQuestionsFG.pilotTransits')])">No 
     {{this.changeForm.get('generalQuestionsFG.specificPilot').value}} 
    </fieldset> 
</div> 
<div class="col-xs-12 col-sm-12"> 
    <textarea class="form-control" rows="2" formControlName="pilotTransits" style="width:100%" placeholder="Provide Transits for Pilot(s)" 
    *ngIf="changeForm.get('generalQuestionsFG.specificPilot').value==='1'"></textarea> 
</div> 

Nach (Datenbindung funktioniert, aber die Sichtbarkeit Makel nicht):

<div class="col-xs-12 col-sm-12"> 
    <fieldset> 
      <input type="radio" formControlName="specificPilot" [value]="1" [ngClass]="{'td-radio-error': displayMessage.specificPilot}" (check)="radioSetValidator(changeForm.get('generalQuestionsFG.specificPilot'),[changeForm.get('generalQuestionsFG.pilotTransits')])">Yes 
      <input type="radio" formControlName="specificPilot" [value]="0" [ngClass]="{'td-radio-error': displayMessage.specificPilot}" (check)="radioSetValidator(changeForm.get('generalQuestionsFG.specificPilot'),[changeForm.get('generalQuestionsFG.pilotTransits')])">No 
      {{this.changeForm.get('generalQuestionsFG.specificPilot').value}} 
    </fieldset> 
</div> 
<div class="col-xs-12 col-sm-12"> 
    <textarea class="form-control" rows="2" formControlName="pilotTransits" style="width:100%" placeholder="Provide Transits for Pilot(s)" 
    *ngIf="changeForm.get('generalQuestionsFG.specificPilot').value==='1'"> </textarea> 
</div> 

Würde jemand in der Lage sein, zu erklären, warum die * ngIf die Überprüfung Radio Button-Kontrolle funktioniert nicht mehr? Ich habe einen Stubcode hinzugefügt, um zu überprüfen, ob sich der Wert richtig ändert und es ist.

+1

Ihr Code ist schwer zu lesen b/c Es gibt viele horizontale Scrolling und externe Informationen. Bitte beachten Sie das Entfernen unnötiger Informationen. Welche Zeile hat das Problem "* ngIf"? – BeetleJuice

+0

Entschuldigung, ich habe gerade die Formatierung korrigiert, die zweitletzte Zeile in beiden Beispielen zeigt den * ngIf an. Das erste Beispiel funktionierte, bevor ich Datenbindung zur Werteigenschaft beider Optionsfelder hinzufügte, wie in der dritten und vierten Zeile im zweiten Beispiel gezeigt. – David

Antwort

3

Wenn Sie <input value="1"> tun, wird der Wert string "1" sein.

Wenn Sie <input [value]="1"> tun, ist der Wert die Nummer 1.

Sie vergleichen mit strenger Gleichheit, so dass es bricht.

+0

Das war es, und ich bin ein Idiot. Ich danke dir sehr. – David

Verwandte Themen