2017-12-25 18 views
-2

Iは、2つのインターフェースを有する:インターフェイスを持つプロパティは定義されていませんか?

<input [ngModel]="customer.customerinfo.code"> 

問題は:

customer.interface.ts HTMLで

export interface Customer{ 
    name?:string; 
    customerinfo?:CustomerInfo; 
} 

customerinfo.interface.ts

export interface CustomerInfo{ 
    code?:number; 
} 

を私は、これは持っていますcustomerinfoが定義されていないというエラーが出ます。なにか提案を? もし私がcustomerinfoがオプションであると付け加えれば、なぜこの問題がありますか?

+0

以下のように安全なナビゲーション演算子を使用不定となり、APIからデータを取得しているので、型はそのプロパティが実際のオブジェクトがそれを持っていることを意味しないということを定義しているからです。顧客がどこから来ているか教えてください。 –

+0

@IngoBurk時々私はそれに応答することができませんし、時々私は..時にはAPIがcustomerinfoに関する情報を返すことを意味し、ときどき – uzhas

答えて

1

二つの問題がまずありますが、それはまた、あなたのコンポーネントのオブジェクト顧客を初期化する必要があり、安全なナビゲーション演算子

<input [(ngModel)]="customer?.customerinfo?.code"> 

[(ngModel)]でなければなりません。

customer : Customer = {}; 

EDIT

あなたは時々cusotmerは、それが非同期的に値を返すことから、ジャスト

<input [(ngModel)]="customer?.customerinfo?.code"> 
+0

顧客は顧客(インターフェイス)のタイプです – uzhas

+0

双方向バインディングを使用するかどうかは、それが間違っているということは、実際には間違っています。このようにオブジェクトを初期化すると、エラーが発生します。 –

+0

@uzhasちょうどあなたがタイプしているものを初期化する必要があります – Sajeetharan

関連する問題