簡體   English   中英

如何為 mat-select 設置默認值?

[英]How to set default value for mat-select?

<mat-select [(ngModel)]='selected' >
   <mat-option *ngFor="let language of languages" [value]="language" >
      {{language}}
   </mat-option >
</mat-select> 

這是我的 html

selected:string
constructor(private firestore: AngularFirestore,private globals:GlobalsService) { 
  console.log(this.globals.userUid);
  this.firestore.collection('customers').doc(this.globals.userUid).get().subscribe(function(doc){
    if(doc.exists){
      console.log(doc.data()["language"]);
      this.selected  = doc.data()["language"]
    }
  })
  for (let index = 0; index < avaibleLanguages.length; index++) {
    const language:string = avaibleLanguages[index]
    this.languages.push(language)
  }}

在 console.log 中,我看到我從 firebase 收到了正確的語言,但它沒有將其設置為默認 select。 這里的所有其他東西都有效

只需要將值放入局部變量中。

var local
    this.firestore.collection('customers').doc(this.globals.userUid).get()
    .subscribe(doc =>{
      if(doc.exists){
        local = doc.data()["language"]
      }
    },err => console.log(err),()=>{this.selected = local }
    )
    for (let index = 0; index < avaibleLanguages.length; index++) {
      const language:string = avaibleLanguages[index]
      this.languages.push(language)
    }

如果症狀持續存在,請使用 ChangrDetectorRef:在此處查找https://angular.io/api/core/ChangeDetectorRef

...
constructor (private changeDetector: ChangeDetectorRef) { }

private someFn(): void {
    this.changeDetector.detach();
    this.changeDetector.reattach();
    this.changeDetector.detectChanges();
}
...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM