私は親コンポーネントで次のことを行います(期待どおりに動作しています)。HTMLテンプレートマークアップでオブジェクトを作成する際に、オブジェクトを子コンポーネントに渡す方法はありますか?
<app-textbox [info]="{caption:'Boink',value:'Oink'}"
... ></app-textbox>
私は以下の宣言をしています。
@Input() info: any;
コードを改善してハードタイプにしたいので、次のクラスを導入してインポートしました。
export class TextBoxInfo { constructor(public caption: string, public value: string) { } }
次に、子コンポーネントの入力を次のように更新しました。
@Input() info: TextBoxInfo;
期待どおりすべてが機能しますが、次の構文に切り替えることでHTMLのマークアップも改善したいと考えていました。
<app-textbox [info]="new TextBoxInfo('Boink','Oink')"
... ></app-textbox>
これは動作せず、エラーメッセージが表示されます。
Uncaught Error: Template parse errors:
Parser Error: Unexpected token 'TextBoxInfo' at column 5 in [new TextBoxInfo('Boink', 'Oink')]
in ng:///AppModule/[email protected]:24 (" /div> app-textbox [ERROR ->][info]="new TextBoxInfo('Boink', 'Oink')" ...
私が確認したり、私は、テンプレートのマークアップでnew Something(...)
ような構文を使用することができることと矛盾するには、Googleしてみました。これまでのところ決定的なものはありません。私はまた、エラーのためにGoogleにしようとしましたが、それは単に構文が認識されないことを私に伝えています。私はどのようにオブジェクトを作成し、それをテンプレートに渡し、それをgooglearchingするかの実行可能な例は見つけられませんでした。それは良いキーワードの欠如によって複雑になります。
オブジェクト作成に間違っていますか?
uは、コンストラクタを使用して親コンポーネントで 'TextBoxInfo'オブジェクトを作成しようとしましたし、それを渡します子コンポーネントの入力に? –
@Med_Ali_Rachid Yupp。それは動作します。したがって、HTMLテンプレート*で作成すると、このような複雑な形式の質問が*発生します。 – DonkeyBanana