Angulaire 4 ne Peut pas se lier à <propriété> car il n'est pas connu de la propriété de <la composante>
Je suis en train de créer mon propre directive Angulaire 4. Mais, j'ai eu cette erreur lorsque lier la propriété de la classe dans le modèle de composant.
D'erreur de la Console:
Unhandled Promise rejection: Template parse errors: Can't bind to
'data' since it isn't a known property of 'tree'. ("<tree [ERROR
->][data]="data"></tree>"):
Mon arborescence de la vue de composant.ts:
@Component({
selector: 'app-tree-view',
template: '<tree [data]="data"></tree>'
})
export class TreeViewComponent implements OnInit {
@Input() data: any[];
constructor() {
this.data = [
{
label: 'a1',
subs: [
{
label: 'a11',
subs: [
{
label: 'a111',
subs: [
{
label: 'a1111'
},
{
label: 'a1112'
}
]
},
{
label: 'a112'
}
]
},
{
label: 'a12',
}
]
}
];
}
ngOnInit() { }
}
Voici mon script complet fichier: https://pastebin.com/hDyX2Kjj
Est-ce que quelqu'un sais ce que c'est? TiA
Vous n'avez pas besoin de marquer les entrées deux fois, soit ` entrées: ['data'],` ou
plnkr.co/modifier/tpl:AvJOMERrnz94ekVua0u5 fournit un prêt à l'utilisation Angular2 modèle - appuyez simplement sur le bouton "nouveau" et "Angulaire".
Il a été résolu avec l'ajout TreeNodeComponent, TreeComponent, adn TreeViewComponent des déclarations tableau dans @NgModule(). Est-il un autre moyen d'inclure TreeViewComponent seulement dans @NgModule() sans TreeNodeComponent et TreeComponent? Parce que j'ai déjà inclus dans son TreeViewComponent.
Désolé, je ne sais pas ce que tu veux dire avec "Parce que j'ai déjà inclus dans son TreeViewComponent." Voulez-vous dire
Je n'ai
@Input()
si vous avez les deux, l'un est redondante. Avez-vous ajouter Node
à declarations of
@NgModule()`?plnkr.co/modifier/tpl:AvJOMERrnz94ekVua0u5 fournit un prêt à l'utilisation Angular2 modèle - appuyez simplement sur le bouton "nouveau" et "Angulaire".
Il a été résolu avec l'ajout TreeNodeComponent, TreeComponent, adn TreeViewComponent des déclarations tableau dans @NgModule(). Est-il un autre moyen d'inclure TreeViewComponent seulement dans @NgModule() sans TreeNodeComponent et TreeComponent? Parce que j'ai déjà inclus dans son TreeViewComponent.
Désolé, je ne sais pas ce que tu veux dire avec "Parce que j'ai déjà inclus dans son TreeViewComponent." Voulez-vous dire
TreeViewModule
?Je n'ai
import { TreeNodeComponent } from './tree-view.node.component';
dans TreeComponent et import { TreeComponent } from './tree.component';
dans TreeViewComponent. Pourquoi devrais-je les inclure à nouveau dans l'app.module? N'est-ce pas assez avec juste notamment TreeViewComponent dans des déclarations?OriginalL'auteur Justinus Hermawan | 2017-03-31
Vous devez vous connecter pour publier un commentaire.
Chaque composant, de la directive, et le tuyau doit être enregistrée dans
@NgModule()
Pour plus de détails, voir
tree.module.ts
: '... @NgModule({ déclarations: [ TreeNodeComponent, TreeComponent, TreeViewComponent ] ... ... "et dansapp.module.ts
:" les importations: [ ... TreeModule ... ] ` Peut-il?Yup, comme mentionné ci-dessous votre question, c'est généralement le droit chemin, mais généralement plus difficile à comprendre pour les gens qui ne sont pas familiers avec
@NgModule()
. Mais il semble que vous l'avez déjà 😉Pouvez vous s'il vous plaît mettre à jour le lien? Lien actuel est cassé.
Merci pour l'astuce! Mis à jour.
OriginalL'auteur Günter Zöchbauer
J'ai la même erreur, lorsque vous exécutez le test pour ParentComponent. L'intérieur a été ChildComponent composant avec @Entrée de la propriété: string;.
Les deux composants ont également été déclarés à l'intérieur de l'app.le module.ts.
J'ai corrigé cela comme ça (composant parent fichier de test):
OriginalL'auteur Kamil Naja
Comme La Aelfinn souligné si vous utilisez votre Composant à travers les Modules, vous devez l'exporter. MAIS vous ne devriez pas l'importation, l'exportation et de le déclarer dans le Module que vous souhaitez utiliser, depuis sa pas partie de ce Module !!!
Supposons donc que vous avez un TreeViewStuffModule qui déclare la TreeViewComponent et un DoSomethingWithTreeViewModule où la TreeViewComponent est utilisé dans, vos déclarations seraient comme suit:
OriginalL'auteur D4rth B4n3
Si vous utilisez TreeViewComponent dans un autre module, vous aurez besoin de importation le composant dans le
@NgModule
comme suit:OriginalL'auteur The Aelfinn