Angular2 Ne peut pas se lier à DIRECTIVE car ce n’est pas une propriété connue de l’élément

J’ai généré un nouveau @Directive par Angular CLI, il a été importé dans mon app.module.ts

import { ContenteditableModelDirective } from './directives/contenteditable-model.directive'; import { ChatWindowComponent } from './chat-window/chat-window.component'; @NgModule({ declarations: [ AppComponent, ContenteditableModelDirective, ChatWindowComponent, ... ], imports: [ ... ], ... }) 

et j’essaie d’utiliser dans mon composant (ChatWindowComponent)

 

Write message

même si dans directive est seulement le code généré par CLI angular:

  import { Directive } from '@angular/core'; @Directive({ selector: '[appContenteditableModel]' }) export class ContenteditableModelDirective { constructor() { } } 

J’ai eu l’erreur:

zone.js: 388 Non promu Rejet de la promesse: Erreurs d’parsing de modèle: impossible de se lier à ‘appContenteditableModel’, car il ne s’agit pas d’une propriété connue de ‘p’.

J’ai essayé presque tous les changements possibles, en suivant ces documents angulars, tout devrait fonctionner mais ce n’est pas le cas.

De l’aide?

Lorsque vous encapsulez une propriété entre parenthèses [] vous essayez de la lier. Donc, vous devez le déclarer en tant que @Input .

 import { Directive, Input } from '@angular/core'; @Directive({ selector: '[appContenteditableModel]' }) export class ContenteditableModelDirective { @Input() appContenteditableModel: ssortingng; constructor() { } } 

La partie importante est que le membre ( appContenteditableModel ) doit être nommé en tant que propriété sur le noeud DOM (et, dans ce cas, le sélecteur de directive).

Si vous utilisez un module partagé pour définir la directive, assurez-vous qu’elle est à la fois déclarée et exscope par module défini dans.

 @NgModule({ imports: [ CommonModule ], declarations: [NgIfEmptyDirective, SmartImageDirective], exports: [NgIfEmptyDirective, SmartImageDirective] })