1

Firebaseから自分のデータにバインドするには、elvis operatorを使用する必要があります。それ以外の場合はすべてundefinedが返されます。私はちょうど反応の形をしているに入ったと私はfireBaseから私の実際のデータを使用して作成したコンポーネントを実装しているし、今私はelvis operator製作に追加する場合、この式の中の「エルヴィス演算子」をどのように補正しますか?

createForm() { 
    this.quesForm = this.fbuild.group({ 
     question: this.featureQuestion.question, 
     id  : this.featureQuestion.id, 
     name : this.featureQuestion.name, 
     answers : this.fbuild.array([]) 
    }); 
    this.setAnswers(this.featureQuestion.answers); 
} 

のように見えますFormGroupからundefinedエラーを取得していますそれがこの

createForm() { 
    this.quesForm = this.fbuild.group({ 
     question: this.featureQuestion?.question, 
     id  : this.featureQuestion?.id, 
     name : this.featureQuestion?.name, 
     answers : this.fbuild.array([]) 
    }); 
    this.setAnswers(this.featureQuestion?.answers); 
} 

は、私はより多くのエラーが、それは表現とか;,他のすべての行を期待する私に言ってもらうのが好きです。したがって、?をここに追加することは、テンプレート内と同じようには機能しません。これを回避するにはどうしたらいいですか?

+1

エルビス演算子は現在れますビューバインディングでのみサポートされています(Angularの特別サポート)。 TypeScriptで実装する計画がありますが、まだ完了していません。 –

+1

代わりに 'question:this.featureQuestion && this.featureQuestion.question'を使用することができます。 –

答えて

3

これは三JavaScriptで演算子(と延長活字による)の正しい使用方法である:あなたのケースのために

conditionToEvaluate ? valueIfTrue : valueIfFalse 

、あなたがしなければならないでしょう:

this.quesForm = this.fbuild.group({ 
    question: this.featureQuestion ? this.featureQuestion.question : '', 
    id  : this.featureQuestion ? this.featureQuestion.id : '', 
    name : this.featureQuestion ? this.featureQuestion.name : '', 
    answers : this.fbuild.array([]) 
}); 
+0

okこれは未定義のエラーを出すのをやめましたが、' FormGroup'は空になります。 – Optiq

+0

私は関数を 'ngOnChanges'に追加してロードします。感謝!!! – Optiq

関連する問題