Angular6 Angular 6中的间接递归Ng模板 //一些代码

Angular6 Angular 6中的间接递归Ng模板 //一些代码,angular6,Angular6,我有一个包含另一个模板“项”的模板“容器”。。容器“项”再次包括“容器” 这不起作用,我收到以下错误: 错误类型错误:templateRef.createEmbeddedView不是函数 有什么想法吗?谢谢。这个问题已经很老了,所以您可能已经找到了答案,但以防其他人遇到这个问题 您遇到的问题是容器模板中变量列表(let list)的命名冲突,该变量列表覆盖列表模板 例如,如果将模板重命名为ListPL(或变量),则该模板应能正常工作: //一些代码 对于模板内部的递归,我们需要了解n

我有一个包含另一个模板“项”的模板“容器”。。容器“项”再次包括“容器”

这不起作用,我收到以下错误:

错误类型错误:templateRef.createEmbeddedView不是函数


有什么想法吗?谢谢。

这个问题已经很老了,所以您可能已经找到了答案,但以防其他人遇到这个问题

您遇到的问题是容器模板中变量列表(let list)的命名冲突,该变量列表覆盖列表模板

例如,如果将模板重命名为ListPL(或变量),则该模板应能正常工作:


//一些代码
对于模板内部的递归,我们需要了解ng模板如何在angular中与templateOutlet一起工作。如果我们掌握了它,我们可以很容易地为参考递归如下代码

<ng-template #list let-Items>
    <ul>
       <li *ngFor="let i of Items">
           <ng-container [ngTemplateOutlet]="container" [ngTemplateOutletContext]="{$implicit: i}"></ng-container>
       </li> 
    </ul>
</ng-template>

<ng-template #container let-list>
// some code
<ng-container [ngTemplateOutlet]="list" [ngTemplateOutletContext]=" 
   {$implicit: list.columns}"></ng-container>
</ng-template>
{{item.linkTranslationKey | translate}}


这是在第8章中测试的。未检查angular的早期版本。

是否有帮助?谢谢
<ul>
  <ng-container *ngTemplateOutlet="recursiveListTmpl; context:{ $implicit: serviceNavLinks }"></ng-container>
</ul>

<ng-template #recursiveListTmpl let-list>
<li *ngFor="let item of list">
    <a class="list-group-item no-border">
        {{item.linkTranslationKey | translate }}
    </a>
    <ul *ngIf="item.childNavLinks && item.childNavLinks.length > 0">
        <ng-container *ngTemplateOutlet="recursiveListTmpl; context:{ $implicit: item.childNavLinks }"></ng-container>
    </ul>
</li>