已修改以删除不相关的代码。
我正在尝试将表单对象打印到控制台,但未显示所选选项。它在控制台中显示为 undefined 。
我已将代码放在下面。如果有人可以指导这个特定代码有什么问题,那将会很有帮助。如果需要任何其他信息,请与我们联系。
Component.html:
<form #f="ngForm" (ngSubmit)="save(f.value)">
....
<div class="form-group">
<label for="category">Category</label>
<select ngModel name="category" id="category" class="form-control">
<option value=""></option>
<option *ngFor="let c of categories$ | async" [value]="c.key">
{{ c.name }}
</option>
</select>
</div>
....
Component.ts:
import { CategoryService } from './../../category.service';
....
export class ProductFormComponent implements OnInit {
categories$;
constructor(categoryService: CategoryService) {
this.categories$ = categoryService.getCategories();
}
save(product) {
console.log(product);
}
....
Category.Service.ts:
import { AngularFireDatabase } from 'angularfire2/database';
....
getCategories() {
return this.db
.list('/categories', ref => ref.orderByChild('name'))
.valueChanges();
}
....
我希望从Firebase数据库中突出显示要在对象中捕获的值。如果我输入c.name,我将获得用户友好名称。
答案 0 :(得分:0)
func textViewDidChange(_ textView: UITextView) {
ProfiletableView.beginUpdates()
ProfiletableView.endUpdates()
}
答案 1 :(得分:0)
我在下面的链接中找到了答案。我们应该使用.valueChanges()
而不是.snapshotChanges()
,因为前者返回一个没有任何元数据的Observable。
下面给出了带有更改的更新文件。
<强> Category.service.ts:强>
已将valueChanges()
更改为snapshotChanges()
。
import { AngularFireDatabase } from 'angularfire2/database';
....
getCategories() {
return this.db
.list('/categories', ref => ref.orderByChild('name'))
.snapshotChanges();
}
....
Component.html:在选择选项插值中,将c.name
更改为c.payload.val().name
。
<form #f="ngForm" (ngSubmit)="save(f.value)">
....
<div class="form-group">
<label for="category">Category</label>
<select ngModel name="category" id="category" class="form-control">
<option value="blank"></option>
<option *ngFor="let c of categories$ | async" [value]="c.key">
{{ c.payload.val().name }}
</option>
</select>
</div>
....