【发布时间】:2020-11-25 15:31:19
【问题描述】:
<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 收到了正确的语言,但它没有将其设置为默认选择。这里的所有其他东西都有效
【问题讨论】:
-
如果把订阅的回调函数改成内联函数,就不会丢失
this实例。你需要改变它像.subscribe(doc => {...})
标签: javascript angular firebase google-cloud-firestore angular-material