簡體   English   中英

如何將數據傳遞到 ng-Container

[英]How can I pass data into a ng-Container

對不起。 我是 Angular 的新手 :)

我正在嘗試將一些數據傳遞到模板中

這是調用 sharedComponent 的組件

 import { Component, OnInit } from '@angular/core'; @Component({ selector: 'sym-test', templateUrl: './test.component.html', styles: [] }) export class TestComponent implements OnInit { items = [ '111', '222', '333' ]; constructor() { } ngOnInit() { } }

 <p>test works!</p> <sym-shared [items]="items"> <ng-template LiTemplateDirective> <b>{{item}}</b> </ng-template> </sym-shared>

 import { Component, OnInit, Input, ContentChild, TemplateRef } from '@angular/core'; import { LiTemplateDirective } from '../li-template.directive'; @Component({ selector: 'sym-shared', templateUrl: './shared.component.html', }) export class SharedComponent implements OnInit { @Input() items: any[]; @ContentChild(LiTemplateDirective, { static: true, read: TemplateRef }) LiTemplate: TemplateRef<any>; constructor() { } ngOnInit() { } }

 <p>shared.component.html</p> <ul> <li *ngFor="let item of items; index as i;"> <ng-container *ngTemplateOutlet="LiTemplate || defaultTemplate;"></ng-container> </li> </ul> <ng-template #defaultTemplate> {{item}} - Default Template </ng-template>

默認情況下,我希望它有一個包含數組項數據和默認模板的項目符號列表......

  • 111 - 默認模板
  • 222 - 默認模板
  • 333 - 默認模板

我的問題是如何將數據放入 ng-container 中?

我有點想在 shared.component.html 中做這樣的事情,但我不認為這樣做:

 <ng-container *ngTemplateOutlet="LiTemplate || defaultTemplate; context: {item: item}"></ng-container>

在 ng-container 中使用 [ngTemplateOutletContext] 並在 ng-template 上使用 let-item

     <ul>
        <li *ngFor="let item of items; index as i;">
            <ng-container [ngTemplateOutlet]="defaultTemplate" 
                 [ngTemplateOutletContext]="{item:item}"></ng-container>
        </li>
    </ul>

    <ng-template #defaultTemplate let-item='item'>
        {{item}} - Default Template
    </ng-template>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM