1

anglefire 2를 사용하는 firebase 오브젝트의 선택 드롭 다운에서 기본값을 설정하려고합니다. 그러나 이걸로 작동시키는 법을 모르겠습니다. 선택 상자의 기본값을 설정합니다. ngModel 허용하지 않습니다 뭔가선택 드롭 다운에서 볼 수있는 firebase에서 Angular 2 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> 

중포 기지 객체 :

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

답변

2

좋아, 내가이 작업을 수행하는 방법을 알게되었습니다. 나는 ngModel을 잘못 쓰고 있었다. 잘못된 :

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

올바른 : ngModel이 [] 대신 [()] 또는 ()로 포장되어

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

참고. 대괄호 []은 입력을 나타내며 괄호 ()은 출력을 나타냅니다. [()]은 양방향 바인딩 (입력과 출력 모두) 용입니다. 자세한 내용은이를 이해하는 데 도움

좋은 가이드는 http://blog.ng-book.com/the-ultimate-guide-to-forms-in-angular-2/

입니다