没有 NgModel 的提供者!在创建结构指令时

No provider for NgModel! while creating Structural directive

我创建了一个结构指令。这是 class.

的构造函数
constructor(private templateRef: TemplateRef<any>, private viewContainer: ViewContainerRef, public query: NgModel) {
    console.log(this.query)
}

如果我删除 public query:NgModel,它会正常工作。如果我添加它,它会抛出错误。

Error: Uncaught (in promise): No provider for NgModel! (ControlMeta -> NgModel)

这里有什么错误?

我对普通指令做了同样的事情,它工作正常。

您必须将 NgModel 指定为 provider:

@Directive({ 
  selector: '...',
  providers: [NgModel],
  ...
})