[英]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.