今天尝试通过 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递归的问题的更多相关文章

  1. .NET 基础 一步步 一幕幕[面向对象之方法、方法的重载、方法的重写、方法的递归]

    方法.方法的重载.方法的重写.方法的递归 方法: 将一堆代码进行重用的一种机制. 语法: [访问修饰符] 返回类型 <方法名>(参数列表){ 方法主体: } 返回值类型:如果不需要写返回值 ...

  2. 算法笔记_013:汉诺塔问题(Java递归法和非递归法)

    目录 1 问题描述 2 解决方案  2.1 递归法 2.2 非递归法 1 问题描述 Simulate the movement of the Towers of Hanoi Puzzle; Bonus ...

  3. Android 算法 关于递归和二分法的小算法

     // 1. 实现一个函数,在一个有序整型数组中二分查找出指定的值,找到则返回该值的位置,找不到返回 -1. package demo; public class Mytest { public st ...

  4. 二叉树的递归实现(java)

    这里演示的二叉树为3层. 递归实现,先构造出一个root节点,先判断左子节点是否为空,为空则构造左子节点,否则进入下一步判断右子节点是否为空,为空则构造右子节点. 利用层数控制迭代次数. 依次递归第二 ...

  5. 递归实现n(经典的8皇后问题)皇后的问题

    问题描述:八皇后问题是一个以国际象棋为背景的问题:如何能够在8×8的国际象棋棋盘上放置八个皇后, 使得任何一个皇后都无法直接吃掉其他的皇后?为了达到此目的,任两个皇后都不能处于同一条横行.纵行或斜线上 ...

  6. C语言用分别用递归和循环求数字的阶乘的方法

    以下代码均为 自己 实现,嘻嘻! 参考文章:http://blog.csdn.net/talk_8/article/details/46289683 循环法 int CalFactorial(int ...

  7. C#递归解决汉诺塔问题(Hanoi)

    using System;using System.Collections.Generic;using System.Linq;using System.Text; namespace MyExamp ...

  8. Java之递归求和的两张方法

    方法一: package com.smbea.demo; public class Student { private int sum = 0; /** * 递归求和 * @param num */ ...

  9. C#语言基础——递归

    递归 一.概念conception: 函数体内调用本函数自身,直到符合某一条件不再继续调用. 二.应满足条件factor: (1)有反复执行的过程(调用自身): (2)有跳出反复执行过程的条件(函数出 ...

随机推荐

  1. RabbitMq学习2-php命令行模式测试rabbitmq

    一.RabbitMQ结构 1.几个概念说明:       Broker:简单来说就是消息队列服务器实体. Exchange:消息交换机,它指定消息按什么规则,路由到哪个队列. Queue:消息队列载体 ...

  2. 剑指offer-用两个栈实现队列-栈和队列-python

    题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型.   # -*- coding:utf-8 -*- class Solution: def __init_ ...

  3. 剑指offer-二叉树中和为某一值的路径-python

    题目描述 输入一颗二叉树的跟节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径.路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径.(注意: 在返回值的list中,数组长度大 ...

  4. pL/Sql插入语句时报错,对表空间没有权限 对表空间 'USERS' 无权限

    进入dba为其授予权限:sqlplus sys/admin as sysdba; 为用户授予权限即可 grant unlimited tablespace to username;

  5. windows无法安装.net framework 3.5解决方法

    windows server 12r2 或 win10 安装.netframework 3.5方法: 一. 直接在“启用或关闭windows功能”中可以启用,需联网.但是经常会出错,可能安装过程中需要 ...

  6. HMP许可更新

    1.打开HMP License Manager,显示路径(License File Name)下的文件为最新许可,点击Activate License后,点击Show License Details, ...

  7. 自然语言处理资源NLP

    转自:https://github.com/andrewt3000/DL4NLP Deep Learning for NLP resources State of the art resources ...

  8. Azure IoT 技术研究系列3

    上篇博文中我们将模拟设备注册到Azure IoT Hub中:我们得到了设备的唯一标识. Azure IoT 技术研究系列2-设备注册到Azure IoT Hub 本文中我们继续深入研究,设备到云.云到 ...

  9. 带加载进度的Web图片懒加载组件Lazyload

    在Web项目中,大量的图片应用会导致页面加载时间过长,浪费不必要的带宽成本,还会影响用户浏览体验. Lazyload 是一个文件大小仅4kb的图片懒加载组件(不依赖其它第三方库),组件会根据用户当前浏 ...

  10. Django【第13篇】:Django之Form组件

    django 之知识点总结以及Form组件 一.model常用操作 1.13个API查询:all,filter,get ,values,values_list,distinct,order_by ,r ...