使用TemplateRef的简单指令产生“没有TemplateRef的提供者”

时间:2017-07-06 21:05:37

标签: angular

我正在尝试创建一个基于条件创建视图的指令。就像内置的ngIf指令一样。

这是我添加到我的项目中的所有内容:

export class QueryNameContext {
    public name: string;
}

@Directive({
    selector: '[action]'
})
export class QueryNameDirective {
    @Input('action')
    public name: string;

    public constructor(private viewContainerRef: ViewContainerRef,
                       private templateRef: TemplateRef<QueryNameContext>) {
    }
}

当我尝试在模板中使用该指令时:

<div *action="thing"></div>

我收到此依赖项错误:

core.es5.js:1020 ERROR Error: Uncaught (in promise): Error: No provider for TemplateRef!

我的模块正在导入CommonModule,我可以在其他指令的TemplateRef绑定中使用@ViewChild

我看不出我做错了什么。

1 个答案:

答案 0 :(得分:1)

也许有人会遇到这个问题,所以我会把它留在这里。

我错误地使用了相同的选择器两个指令。重命名此修复了Uncaught (in promise): Error: No provider for TemplateRef!错误。