2017-10-17 2 views
0

Ich bin neu in Angular. Ich benutze ngSwitch in meinem Programm, aber jedes Mal, wenn ich das Programm ausführen *ngSwitchDefault führt statt *ngSwitchCase. Hier ist der Code:Angular * ngSwitchCase wird nicht ausgeführt

<select [(ngModel)]="selectedControl" class="form-control"> 
    <option *ngFor="let inputControl of inputArray; let i=index" 
    [value]="inputControl">{{inputArray[i]}}</option>         
</select> 
<span [ngSwitch]="selectedControl"> 
    <span *ngSwitchCase="text"> 
    <p>text is selected</p>    
    </span> 
    <span *ngSwitchCase="radio"> 
    <p>radio is selected</p> 
    </span>   
    <span *ngSwitchDefault> 
    <p>Default value</p> 
    </span> 
</span> 
+0

Sie müssen es eine Zeichenfolge machen "" 'True' "' –

Antwort

1

Wickeln Sie die *ngSwitchCase Ausdrücke in die '' ihnen strings zu machen. Der Vergleich wird mit === verwendet, daher wird string mit string verglichen. In Ihrem Fall wird es ein Mitglied mit dem Namen radio oder text finden und ihre Werte erhalten, die undefiniert sind.

<span [ngSwitch]="selectedControl"> 
    <span *ngSwitchCase="'text'"> 
    <!--     ^----^ --> 
    <p>text is selected</p>    
    </span> 
    <span *ngSwitchCase="'radio'"> 
    <!--     ^-----^ --> 
    <p>radio is selected</p> 
    </span>   
    <span *ngSwitchDefault> 
    <p>Default value</p> 
    </span> 
</span> 
+0

Es funktioniert, danke –

Verwandte Themen