javascript - 如何从选择下拉列表中的 firebase observable 设置 Angular 2 ngModel

标签 javascript angular firebase firebase-realtime-database angularfire2

我正在尝试使用 angularfire 2 在 firebase 对象的选择下拉列表中设置默认值。但我不知道如何设置选择框的默认值。 ngModel 不允许类似 (ngModel)="(default_tax | async)"

代码:

public default_tax$:Observable<any>;
public tax$:Observable<Tax>;

ngOnInit(): void {
    this.tax$ = this.db.list(`tax_rates`);
    this.default_tax$ = this.db.object(`settings/default_tax_rate`);
}

模板:

<select name="tax_rate" (ngModel)="default_tax.$key" (ngModelChange)="onSelect($event)">
    <option  *ngFor="let tax of (taxes$ | async)" [ngValue]="tax.$key">
    {{tax.name}} - {{tax.rate}}
    </option>
</select>

Firebase 对象:

account:
    setttings:
         default_tax_rate: "-somekey"
    tax_rates:
         "-somekey":
              "name":"5.5"
         "-someotherkey"
               "anothername":"4.5"

最佳答案

好的,我知道怎么做了。我写错了 ngModel。 错误:

(ngModel)="default_tax.$key"
(ngModel)="(default_tax | async)"

正确:

[ngModel]="(default_tax | async)?.$value" 

Note that ngModel is wrapped with [] instead of [()] or (). Brackets[] indicate input, where parenthesis() indicate output. Having both [()] is for two-way binding (both input and output).

http://blog.ng-book.com/the-ultimate-guide-to-forms-in-angular-2/ 可帮助您更详细地理解这一点。

关于javascript - 如何从选择下拉列表中的 firebase observable 设置 Angular 2 ngModel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40307351/

相关文章:

javascript - 如何在 Asp.net mvc 中使用 Angular 插入系统日期和其他数据

javascript - 导入的 SVG 作为 <object> 包含 onclick 事件如何在 Angular 组件中处理它们

Apache 服务器上的 Angular 应用程序无需重写规则

ios - 如何在 Prod for iOS 中测试/验证 Firebase 动态链接引用?

Firebase + 跟踪代码管理器 : Fetch variable from previously sent event

javascript - Bigcommerce 模板包,无需缩小 javascript

php - 如何将变量传递给 javascript 并从 php 返回?

javascript - React + Firebase 保存问题。为什么这个哈希?

javascript - 使用javascript输入文本

javascript - 如何从异步调用返回响应?