I'm trying to create my own directive in Angular 4. But, I got this error when bind the property of class into component template.
Console error:
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>"):
My tree-view-component.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() { }
}
Here is my complete script file: https://pastebin.com/hDyX2Kjj
Is there anyone know about this? TiA
@Input()
if you have both, one is redundant. Did you addNode
todeclarations of
@NgModule()`? – ArcuationTreeViewModule
? – Arcuationimport { TreeNodeComponent } from './tree-view.node.component';
in TreeComponent andimport { TreeComponent } from './tree.component';
in TreeViewComponent. Why should I include them again in app.module? Doesn't it enough with just including TreeViewComponent in declarations? – Azral@NgModule({ declaration: []})
. Either inAppModule
or a module added toimports: []
ofAppModule
(direct or transitive). – Arcuationdeclarations: []
of exactly one module. – Arcuation