再利用可能な書き込み可能ですng-template
?私の多くのコンポーネントはまったく同じものを使用しますng-template
。私はすべてのコンポーネントでの背後に、このテンプレートとロジックを繰り返したくない角の再利用可能なテンプレート
<kendo-grid>
<kendo-grid-column field="group">
<ng-template kendoGridEditTemplate let-dataItem="dataItem" let-formGroup="form">
<kendo-dropdownlist #listGroups [data]="groups"
textField="title"
valueField="id"
[valuePrimitive]="true"
[filterable]="true"
[formControl]="form.get('groupId')">
</kendo-dropdownlist>
</ng-template>
</kendo-grid-column>
</kendo-grid>
:たとえば
。私は、カスタムコンポーネント記述し、このコードを縮小することができます:
<kendo-grid>
<kendo-grid-column field="group">
<ng-template kendoGridEditTemplate let-dataItem="dataItem" let-formGroup="form">
<my-custom-component [formControl]="form.get('groupId')">
</my-custom-component>
</ng-template>
</kendo-grid-column>
</kendo-grid>
を私はより多くをしたい:私は複数のコンポーネント間でテンプレートを共有する方法this threadとngTemplateOutlet
を説明thisはなく、見つけた
<kendo-grid>
<kendo-grid-column field="group">
<ng-template [ngTemplateOutlet]="templateFromAnotherSource">
</ng-template>
</kendo-grid-column>
</kendo-grid>
。
こんにちは。ブログであなたの記事のいくつかを読んだ後、私は第2のオプション(テンプレート内のカスタムコントロール)に行くことにしました。 1行の余分なコードの場合、これは多くのように見えます。 テンプレートを挿入するためのデザインソリューションをもっと探していました。これは自動的に行われるため、コンパイルする必要はありません。とにかく、素晴らしい投稿。ありがとうございました。 このソリューションはAOTで動作しますか? – Makla
これはAOTで動作するはずです。 _これは自動的に行われるため、コンパイルする必要はありません_あなたがwebpackを使用している場合は、テンプレートを解析して部分テンプレートを挿入するプラグインを作成しますが、それはおそらくあなたが望むものではないでしょう –