javascript - Angular 2 - 在硬编码默认值时在下拉列表中设置默认值

标签 javascript angular typescript ngfor angular2-ngmodel

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

    <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 不再可用,我发现的每个示例都显示使用 ngFor 进行下拉菜单.

最佳答案

对象属性区分大小写,在您的对象中,属性称为careProvider,但在您的模板中,您使用的是小写的psearchModel.careprovider/。我认为您还必须使用 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>

关于javascript - Angular 2 - 在硬编码默认值时在下拉列表中设置默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41622586/

相关文章:

javascript - Angular 2 Routerlink *ngIf 与参数

javascript - 如何使用 ngx-pagination 在 ionic4 应用程序中对数据进行分页?

angular - 无法更新 Angular CLI

typescript - 使用 TypeScript 1.5 的运行时装饰器/注释

javascript - AngularJS 1.x 在 ng-repeat 中一次显示一项,单击下一步应显示下一项,依此类推

javascript - 用鼠标选择对象 - Three.js

typescript - Typescript 中的方括号与表达式后的关系

packages.json 中的 TypeScript @types/packages

javascript - 在页面上滚动 "position: fixed"div 但不超过某个 div

javascript - 有没有办法查看node js内部如何存储数字?