2017-09-26 55 views
0

我使用Angular和Angular Material 2的md-select組件存在問題。當我更改select的值時,它的作用是,但md-select的值保持不變,在我的情況下,這是默認選擇選項「LTC」。我需要顯示當前選定的選項,而不是默認選擇的選項。 感謝您的幫助!Md選擇值在選擇後不會改變

component.ts

import { Component, OnInit } from '@angular/core'; 

@Component({ 
    selector: 'app-allcoins', 
    templateUrl: './allcoins.component.html', 
    styleUrls: ['./allcoins.component.scss'] 
}) 
export class AllcoinsComponent implements OnInit { 

    regTypeSelectedOption: string = "LTC"; 
    selectedNav: any; 
    navs = ['LTC', 'ETH', 'ZEC', 'XRP'] 

    constructor() { } 

    setNav(nav:any){ 
    this.selectedNav = nav; 
     if(this.selectedNav == "LTC"){ 
      this.regTypeSelectedOption = "LTC"; 
     } 
     else if(this.selectedNav == "ETH"){ 
      this.regTypeSelectedOption = "ETH"; 
     } 
     else if(this.selectedNav == "ZEC"){ 
      this.regTypeSelectedOption = "ZEC"; 
     } 
     else if(this.selectedNav == "XRP"){ 
      this.regTypeSelectedOption = "XRP"; 
     } 
    } 

    ngOnInit() { 
    this.selectedNav = 'select value'; 
    } 

} 

HTML

<div class="main-content"> 
    <div class="container-fluid"> 
     <div class="row"> 
      <div class="col-md-8"> 
       <div class="card"> 
        <div class="card-header card-header-text"> 
         <h4 class="card-title">Comprar Criptodivisas</h4> 
         <p class="category">Seleccione la criptodivisa que desea comprar</p> 
        </div> 
        <div class="card-content"> 
         <md-select placeholder="Moneda" [(ngModel)]="regTypeSelectedOption"> 
          <md-option [value]="regTypeSelectedOption" (click)="setNav(item)" *ngFor="let item of navs">{{item}}</md-option> 
         </md-select> 
         <app-comprarzec *ngIf="regTypeSelectedOption === 'ZEC'"></app-comprarzec> 
         <app-comprarxrp *ngIf="regTypeSelectedOption === 'XRP'"></app-comprarxrp> 
         <app-comprarltc *ngIf="regTypeSelectedOption === 'LTC'"></app-comprarltc> 
         <app-comprareth *ngIf="regTypeSelectedOption === 'ETH'"></app-comprareth> 
        </div> 
       </div> 
      </div> 
     </div> 
    </div> 
</div> 

回答

0

你應該在這種情況下(change)=""使用更改事件它會讓你控制好每一個新的選項,選擇時間,以便它會觸發事件。

對於你的問題,你是在告訴所有的值都是[value]="regTypeSelectedOption"和指定,這是「LTC」爲默認值,你只需要在NgModel使用regTypeSelectedOption,但不是在值。

編輯

在你的情況(正如你所看到的MD-期權的價值等於項目):

<md-option [value]="item" (click)="setNav(item)" *ngFor="let item of navs">{{item}}</md-option> 

希望工程。

+0

謝謝你的回答Manel,但你能更具體嗎?我只是學習 –

+0

剛剛編輯,希望你現在就明白。 –

+0

謝謝你Manel,即使你沒有使用'(change)=「」' –