3

我有以下下拉列表。我想将所有患者设置为默认值。

    <select [(ngModel)]="searchModel.careprovider">
      <option [value]="0">All Pateints</option>
      <option *ngFor="let user of practiceUsers" [value]="user._id.$oid">
        {{user.dn}}
      </option>
    </select>

我的模型是这样声明的:

searchModel: any = { location: null, practice: null, name: '', careProvider: 0 };

我这样设置 practiceUsers :

  this._practice.getUsers(this.searchModel.practice).subscribe(result => {
    this.practiceUsers = result;
    this.searchModel.careProvider = 0;
  });

无论我如何更改它,我总是会得到一个空白选项作为默认选项。我尝试this.practiceUsers在加载后将对象添加到数组中,然后设置模型值。我尝试设置带引号和不带引号的模型值,以查看数字或字符串是否有所不同。我尝试的一切仍然导致默认为空白选项。

在 Angular 1 中,我会使用ng-options,但对于 Angular 2 不再可用,并且我发现的每个示例都显示使用ngForfor 下拉菜单。

4

3 回答 3

3

对象属性区分大小写,在您的对象中,属性称为careProvider,但在您的模板中,您使用searchModel.careprovider的是小写p。我认为您还必须使用NgValue指令而不是value因为您正在使用NgModel指令。所以,这应该工作:它不工作

<select [(ngModel)]="searchModel.careProvider">
  <option [ngValue]="0">All Pateints</option>
  <option *ngFor="let user of practiceUsers" [ngValue]="user._id.$oid">
    {{user.dn}}
  </option>
</select>
于 2017-01-12T20:52:16.767 回答
1

尝试使用 [selected] 属性。我以这种方式解决了类似的问题:

<select>
   <option *ngFor="let option of options" value="{{option.id}}" [selected]="option === selectedOption">
      {{option.name}}
   </option>
</select>

希望这会有帮助

于 2017-01-12T20:54:30.257 回答
0
<select class="form-control" id="policeid_country_id" name="policeid_country_id" formControlName="policeid_country_id">
    <option [ngValue]="null">Select</option>
    <option [ngValue]="country.id" *ngFor="let country of countries">{{country.country}}</option>
</select>
于 2017-05-05T05:57:54.863 回答