我有一个Angular材质表单字段,该字段具有一个mat-select,我试图将其设置为我的angularFire数据库(FireStore)中已有值的默认值。重要的要点是,在页面加载时,我试图将数据库中的一些数据视为可观察的对象。问题是,我必须做一些改动才能使其正常工作(当前使用ngIf,以便可以在可观察对象上使用“ | async”)。我这样做的原因是因为我无法在[[ngModel)]中使用“ | async”语法。
基本上我需要以下之一:
一种有角度的材料可以使我从观察中获得价值的解决方案。
一种解决方案,该解决方案如何从我的模板中获取等效的“ | async”并在组件的打字稿中执行相同的操作(从那里我可以使用ngModel绑定到该值)
只要它不是骇客的,我就不会考虑其他解决方案
以下是我与* ngIf一起使用的工作代码,以便显示正确的默认数据:
组件:
fq
模板(可以使用ngIf hack,但可以使用):
foreach (Control control in Controls)
if (control is CheckBox)
{
SqlCommand cmd = new SqlCommand($"INSERT INTO services({(control as CheckBox).Tag.ToString()}) VALUES (@a)", cnm);
cmd.Parameters.AddWithValue("@a", (control as CheckBox).Checked);
cmd.ExecuteReader();
}
所需模板(语法上不正确):
constructor(private db: AngularFirestore) {
}
ngOnInit() {
this.food$ = this.db.doc('user/123/foods/321').valueChanges() as Observable<Food>;
}
答案 0 :(得分:0)
[(ngModel)]是[ngModel]和(ngModelChange)的组合形式。如果将它们分开,则应该可以使用
const arr = [ [1, 2], [3, 4] ]
const f = Array.from(arr, x => ...x)
和Unexpected token ...
[ngModel]="(food$|async)?.fiber" (ngModelChange)="changeValue($event)"