无法绑定到“ ngTemplateOutletContext”

时间:2018-07-09 15:17:15

标签: angular

我已经将Angular 4转换为Angular 6,并且已经构建了项目并得到以下错误。任何想法如何处理?

  

由于未知,无法绑定到“ ngTemplateOutletContext”   “ ng-container”的属性。

<ul *ngIf="item.childrens != undefined && item.childrens.length > 0">
   <ng-container *ngTemplateOutletContext="recursiveList; context:{ $implicit: item.childrens }"></ng-container>
</ul>

我的问题是关于TemplateOutletContext,而不是TemplateOutlet

2 个答案:

答案 0 :(得分:7)

按照docs

  

ngTemplateOutletContext绑定到   NgTemplateOutlet.ngTemplateOutletContext

因此,您可以通过以下方式附加上下文:

<ng-container 
  [ngTemplateOutlet]="recursiveList"
  [ngTemplateOutletContext]="{ $implicit: item.childrens }"></ng-container>

或者:

<ng-container *ngTemplateOutlet="recursiveList; context: { $implicit: item.childrens }"></ng-container>

Angular需要知道您打算将上下文对象添加到哪个视图,因此ngTemplateOutletContext不能在其自己的AFAIK上工作。

SourceDemo

答案 1 :(得分:0)

以上期望的答案对我不起作用。您将来会在这里寻找的人。

当您想使用ngTemplateOutletContext之类的(item.childrens而不是项目本身)将动态数据作为输入/变量发送到ng-template时,这是正确的语法。

<div>
    <ng-container [ngTemplateOutlet]="templateName"
        [ngTemplateOutletContext]="{$implicit: 'Hello World', object2: 'John Doe'}">
 </ng-container>
</div>

<ng-template #templateName let-default let-object2="object2">
    {{default}}
    {{object2}}
</ng-template>