首页 > 其他 > 详细

ngTemplateOutlet递归的问题

时间:2019-06-07 15:38:59      阅读:119      评论:0      收藏:0      [点我收藏+]

今天尝试通过 ng-template 加 ngTemplateOutlet实现一个递归的菜单。但是遇到一个问题:NullInjectorError: No provider for NzMenuDirective!
即zerro的指令找不到。如果把zerro的指令去掉就可以正常显示。原以为是zerro的模块没导入,但是尝试不用ng-template,而是直接写‘nz-menu-item’就可以成功显示zerro的菜单。

最终得出结论,zerro和ngTemplateOutlet不能结合使用。递归应该用组件,不应该用ngTemplateOutlet

参考:

 https://github.com/NG-ZORRO/ng-zorro-antd/issues/3490#issuecomment-495630765

https://github.com/angular/angular/issues/14842

 

 

<ng-container *ngTemplateOutlet="menuItemNode; context: {menus_:menus}"></ng-container>

<ng-template #menuItemNode let-theMenus="menus_">
  <ng-container *ngFor=‘let menu of theMenus‘>
    <li *ngIf=‘menu.childrens.length==0‘ nz-menu-item>
      <span title>
        <i type="mail"></i>
        <span>{{menu.resourceName}}</span>
      </span>
    </li>
    <li *ngIf=‘menu.childrens.length!=0‘>
      <span title>
        <i type="appstore"></i>
        <span>{{menu.resourceName}}</span>
      </span>
      <ul style="padding-left: 5px">
        <ng-container *ngTemplateOutlet="menuItemNode; context: {menus_:menu.childrens}"></ng-container>
      </ul>
    </li>
  </ng-container>
</ng-template> 

 

ngTemplateOutlet递归的问题

原文:https://www.cnblogs.com/yoyogis/p/10988260.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!