我已经将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
。
答案 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上工作。
答案 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>