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なく、ディレクティブも使用する必要があると思います。したがって、これは機能するはずです。機能していませんvalueNgModel

<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 に答える