2016-10-21 5 views
2

У меня есть ngSwitch для атрибута модели, связанного с выпадающим списком. Он не работал, поэтому я попытался просто скорректировать значение. Все еще не работает, он отображает и divs. Что я делаю не так? Извиняюсь заранее, если это что-то очевидное, я новичок в Angular2.Angular2 ngSwitch не работает

Мой шаблон HTML:

 <!-- display closed date if status is closed, otherwise display active date --> 
     <div ngSwitch="ACTV"> 
      <div class="form-group row" ngSwitchWhen="CLSD"> 
      <label for="closeDt" class="col-md-4 form-control-label text-md-right"> 
             Close Date 
             <span class="help-block">Required field</span> 
            </label> 
      <div class="col-md-4 col-xs-12"> 
       <datetime [timepicker]="false" [(ngModel)]="date2" id="close-date" name="close-date"></datetime> 
      </div> 
      </div> 
      <div class="form-group row" ngSwitchWhen="ACTV"> 
      <label for="issueDt" class="col-md-4 form-control-label text-md-right"> 
             Active Date 
             <span class="help-block">Required field</span> 
            </label> 
      <div class="col-md-4 col-xs-12"> 
       <datetime [timepicker]="false" [(ngModel)]="date2" id="active-date" name="active-date"></datetime> 
      </div> 
      </div> 
     </div> 

Результат на сервере НПМ:

enter image description here

ответ

3

Какую версию angular2 вы используете? В финальной (выпускной) версии синтаксис, который работает для меня, это:

<div [ngSwitch]="someVariable"> 
    <div *ngSwitchCase="value1">...</div> 
    <div *ngSwitchCase="value2">...</div> 
</div> 
2

Ваш синтаксис для использования неверен. Он должен быть [ngSwitch]="switch_expression", а затем корпуса должны выглядеть так: <some-element *ngSwitchCase="match_expression_1">

См. here, чтобы использовать его.

0

вы должны проверить на объект attributs

switch_expression { 
    match_expression_1: value1, 
    match_expression_2: value2, 
    match_expression_3: value3, 
} 

, а затем:

<div [ngSwitch]="switch_expression"> 
    <div *ngSwitchCase="match_expression_1">...</div> 
    <div *ngSwitchCase="match_expression_2">...</div> 
</div> 

для получения дополнительной информации: https://angular.io/docs/ts/latest/api/common/index/NgSwitch-directive.html