*ngif 第一次点击后不工作。 Angular 6

*ngif Not working after first click. Angular 6

我想要实现的是我在 angular6 中有一个 Select 字段,基于我想隐藏和显示另一个 div.

的所选值

这是代码。

 <div class="form-group">
          <label for="servicePriviledges">Managed</label>
          <select type="text" class="form-control" id="managedServiceInfo" name="managedInfo" [(ngModel)]="managed">
            <option value="false">False</option>
            <option value="true">True</option>
          </select>
           <br>
        </div>

<div class="form-group" *ngIf="managed">
          <label for="managerType" >Manager Type</label>
          <select type="text" aria-hidden="false" class="form-control" id="managerType" name="managerType">
            <option value="false">False</option>
            <option value="true">True</option>
          </select>
        </div>

*ngIf 在我第一次切换时确实会产生影响,但之后就不会了。未检测到更改。

我什至尝试设置样式的可见性属性以及 [hidden] 指令,但得到了相同的结果。

我什至试过给出一个 on change 方法,但结果没有任何变化。

版本信息:

"@angular/core": "^6.1.6",
"@angular/forms": "^6.1.6",

这两个控件都在表单 'ngForm'.

managed 的字符串值为 'true''false' 像这样更新 ngIf

<div class="form-group" *ngIf="managed === 'true'">
 ...
 </div>

或者您可以使用 ngValue,这样 managed 的​​布尔值将为 true 和 false

 <select type="text" class="form-control" name="managedInfo" [(ngModel)]="managed">
   <option [ngValue]="false">False</option>
   <option [ngValue]="true">True</option>
  </select>

另一种方法是为每个选项附加 [ngValue] 指令。

<select type="text" class="form-control" id="managedServiceInfo" name="managedInfo" [(ngModel)]="managed">
    <option [ngValue]="false">False</option>
    <option [ngValue]="true">True</option>
</select>