2017-05-09 12 views
3

사용자 이름 목록이있는 드롭 다운 메뉴가 있습니다. 나는 리드를 원해. 이것을 어떻게 할 수 있습니까?각도 재료 - 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에 값이 설정됩니다 당신이 당신의 plan을받은 때, 당신은 값을 설정할 수 있습니다.

+0

이것은 내가 누락 된 부분입니다. 구성 요소에 이것을 설정하면 아름답게 작동합니다. this.myForm.get ('lead'). setValue (this.plan.lead.id) – Jay

+0

좋습니다! 다행! sidenote로서, ngModel은 반응 형 양식과 함께 사용하기에 완전히 불필요합니다.이 경우 formcontrols는 값을 설정하는 데 사용해야합니다. 여기에있는 양식 컨트롤에서 수행 할 수있는 다른 기능은 다음과 같습니다. https ://angular.io/docs/ts/latest/api/forms/index/FormControl-class.html 예를 들어 특정 양식 컨트롤의 값을 재설정해야하는 경우 유용 할 수 있으므로 해당 페이지를 확인하십시오. :) 더욱이 위대한 낮/저녁/아침 및 행복한 코딩! :) – Alex

0

우선 반응 형을 사용하고 있습니까?

그렇다면 ng-model (잘못된 숫자는 [(ngModel)]이어야 함)에 잘못된 구문을 사용하고 있음에도 불구하고 반응 형 양식과 함께 사용하면 안됩니다.

formControlName 또는 [formControl] 만 사용하십시오.

+0

ngModel 구문에 대한 좋은 알림은 '상자 안에있는 바나나'라는 사실을 잊지 않을 것입니다. D – Ploppy