これは簡単なことですが、何がうまくいかないのか理解できません。ngModelを使用してオブジェクトをテンプレートにバインドしようとしているときにエラーが発生しましたか?
私は私のクラスでは、この持っている:
interface Message {
type: string;
email: string;
}
export class MyClass {
public message: Message;
public email: string;
constructor() { }
// ...
}
私は電子メールの変数をバインドする場合、それだけで動作します([(ngModel)]='email'
)が、私はメッセージ[(ngModel)]='message.email'
をバインドしようとした場合、私はエラーを得た:Cannot read property 'email' of undefined.
なぜカント角度到達私をオブジェクト変数?
コンパイル習慣:ここ
はサンプルです。 'Message'は存在しません。私は 'public message:Message = {'type': ''、 'email': ''};を使うことができます。私はtypescriptが私のためにこれを処理すると思った。 – NoNameProvided
ああ、私は「メッセージ」がインターフェースであるとは思わなかった。リテラル式を使用して、 'Message'型のオブジェクトをインスタンス化することは可能です。 TypeScriptは、リテラルオブジェクトにすべての必須要素があるかどうかをチェックします。型をインスタンス化する場合は、クラスを作成する必要があります。インタフェースには、コンパイルされたコードには対応がありません。 –
それは私に少し工学的な感じだった。それ以外の方法はないと思われます。あなたの答えを編集してクラスメソッドを持っていれば、私はできる限り答えを受け入れます。 – NoNameProvided