首页 新闻 会员 周边 捐助

angular 升级后 ngTemplateOutlet 无法正常工作

0
悬赏园豆:30 [已解决问题] 解决于 2025-05-07 10:14

从 angular 17 升级到 angular 19 后,下面使用 ngTemplateOutlet 的代码无法正常工作

<div>
    <div class="post-list-batch-operation-left">
        <nz-space>
            <ng-container *ngFor="let item of items">
                <ng-container *ngIf="item.checkIsEnabled(postType)">
                    <div *nzSpaceItem>
                        <ng-container *ngTemplateOutlet="itemTmpl;context:item"></ng-container>
                    </div>
                </ng-container>
            </ng-container>
        </nz-space>
    </div>
</div>

<ng-template #itemTmpl let-title="title" let-onClick="onClick" let-icon="icon">
    <button [title]="title" nz-button nzType="text" (click)="onClick()">
        <i class="iconfont font-size-inherited" [class]="icon"></i>
    </button>
</ng-template>

ng-template 的内容没有显示

问题补充:

如果不用星号,可以这么写

<ng-container [ngTemplateOutlet]="itemTmpl" [ngTemplateOutletContext]="{item}"></ng-container>
dudu的主页 dudu | 高人七级 | 园豆:24677
提问于:2025-05-07 08:09
< >
分享
最佳答案
0

是少了下面两个 import 引起的

@Component({
    imports: [NgTemplateOutlet, NzSpaceModule]
})

迁移到 standalone components 后被这个问题坑了很多次,因为 angular 编译器在编译时发现不了一些 import 缺失的情况

dudu | 高人七级 |园豆:24677 | 2025-05-07 10:14

在出问题时引用了 NzSpaceComponent,没有引用 NzSpaceModule

dudu | 园豆:24677 (高人七级) | 2025-05-07 10:20
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册