2017-05-09 20 views
3

ユーザー名のリストでmd-selectドロップダウンがあります。私はlead.idを選択したい。どうすればこれを達成できますか?角材 - md-select - ドロップダウンで選択した項目

<md-select formControlName="lead" ng-model="plan.lead.id" id="lead" style="min-width: 200px;"> 
        <md-option *ngFor="let lead of users" [value]="lead.id"> 
         {{lead.displayName}} 
        </md-option> 
       </md-select> 

getLead() { 
     this.service.getLead(this.id) 
      .subscribe(res => { 
       this.plan = res; 
       console.log("lead: " + this.plan.lead);  
      }); 
    } 
+0

コードでオプションを選択しようとしていますか?または、クリックされたオプションのIDを取得しますか? – Ploppy

答えて

2

ng-modelは、AngularJS構文です。しかし、ここではngModelを使用する必要はありません。反応するフォーム(?)があり、受信した値でformcontrolを設定できます。あなたは​​を受け取ったときに、あなたは値を設定することができます

this.myForm.get('lead').setValue(this.plan.lead.id) 

あなたのテンプレート:

<md-select formControlName="lead" id="lead" style="min-width: 200px;"> 
    <md-option *ngFor="let lead of users" [value]="lead.id"> 
     {{lead.displayName}} 
</md-option> 
</md-select> 

数秒待ってから、Plunkerに値が設定されます。

+0

これは私が紛失したものです。これをコンポーネントに設定すると、それは美しく機能しました。 this.myForm.get( 'lead')。setValue(this.plan.lead.id) – Jay

+0

素晴らしい!聞いてうれしい! ngModelは反応的なフォームでは使いません(この場合、フォームコントロールはこれを置き換えて値を設定する必要があります)。ここにあるフォームコントロールで実行できるその他の関数:https:/ /angular.io/docs/ts/latest/api/forms/index/FormControl-class.html特定のフォームコントロールの値をリセットする必要がある場合などに便利です。そのページを確認してください:)さらに、日/夕方/朝と幸せなコーディング! :) – Alex

0

まず、反応性フォームを使用していますか?

もしそうなら、ng-model(それは[(ngModel)]であるはずです)で誤った構文を使用しているにもかかわらず、反応形式では使用しないでください。

formControlNameまたは[formControl]のみを使用してください。

+0

ngModelの構文については、「バナナの箱」であることを忘れないでください:D – Ploppy

関連する問題