2016-07-29 5 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、私は質問を更新しました。「エラー:未知(約束しています):NgModelのプロバイダがありません! (ControlMeta - > NgModel) ' –

答えて

4

あなたはproviderとしてNgModelを指定する必要があります。エラーは、それが投げるん何

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

うまく働いています、ありがとう、しかし私は理解できませんでした。なぜ私が同じことをした別の通常のディレクティブでエラーを表示していないのですか? –

+0

構造指令です。あなたは通常、あなたのカスタムディレクティブに対して同じことを行います( 'providers'リストに指定してください)。 –

+0

@AndreiZhytkevichは、DOMにその要素に対して' [(ngModel)]ディレクティブを持たせるべきですか? –

関連する問題