下のサンプルでは、下のようにng-template
を使用しており、正常に動作しています。
サンプルリンク: ここをクリック
<ng-template #template let-dataSource="">
<span *ngIf="dataSource.iconCss" class="e-menu-icon {{dataSource.iconCss}}"></span> {{dataSource.header}} {{dataSource.text}}
<span *ngIf="dataSource.templateHeader" class="e-login-content">
<button ejs-button cssClass="e-info">Sign In</button>
</span>
</ng-template>
しかし、ng-template
コンテンツ用の新しいファイルを作成し、別のファイルで使用したい。私は以下のように試しましたが、動作していません。この場合の解決策を見つけるのを手伝ってください。
template.html
<ng-template #template let-dataSource="">
<span *ngIf="dataSource.iconCss" class="e-menu-icon {{dataSource.iconCss}}"></span>
{{dataSource.header}} {{dataSource.text}}
<span *ngIf="dataSource.templateHeader" class="e-login-content">
<button ejs-button cssClass="e-info">Sign In</button>
</span>
</ng-template>
default.html
<div class="control-section">
<ejs-menu #menu [items]='dataSource' [fields]='menuFields'>
<ng-container *ngTemplateOutlet="template;"></ng-container>
</ejs-menu>
</div>
サンプル2: サンプル2
ref stackoverflow question: 別のファイルのangular2 ng-template
テンプレート用のコンポーネント(tplComponent
という名前)を作成し、その中に必要な数のテンプレートを作成できます。次に、他のコンポーネントでtplComponent
のインスタンスを取得し、そこからテンプレートを取得します。これは question で、このアプローチの例があります(試したことはありません)。
それが機能するかどうか教えてください。