2016-07-29 61 views
1

我創建了一個結構指令。這是該類的構造函數。沒有NgModel的供應商!同時創建結構指令

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)

什麼錯誤嗎?

我做了同樣的正常指令,它工作正常。

+0

什麼錯誤它扔? –

+0

@AndreiZhytkevich,我更新了問題.'錯誤:Uncaught(承諾):沒有NgModel的提供者! (ControlMeta - > NgModel)' –

回答

4

您必須指定NgModelprovider

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

工作正常,謝謝,但我不明白,爲什麼它不顯示錯誤的另一個正常的指令,我做了同樣的,只顯示錯誤的結構指令? –

+0

這是結構指令。你通常對你的自定義指令做相同的操作(在'providers'列表中指定它) –

+0

@AndreiZhytkevich應該指令DOM應該在該元素上有[[(ngModel)]指令嗎? –