- Добавление * ngFor в шаблон ng #treeNodeTemplate заставляет дерево обновляться бесконечно.
Относится к компоненту angular-tree с Angular 7.
<tree-root [nodes]="data" #tree [options]="customTemplateStringOptions">
<ng-template #treeNodeTemplate let-node="node" let-index="index">
<div class='model-tree-item'>
<div>{{ node.data.getItemText() }}</div> <!-- supposed to get text from object -->
<!-- This loop runs infinitely, getTestData() returns [1, 2, 3], keeps getting called -->
<ng-template ngFor [ngForOf]="getTestData()" let-item>
{{item}}
</ng-template>
</div>
</ng-template>
</tree-root>
Попробовал это с помощью простого
<div *ngFor="let item of [1, 2, 3]"> (or getTestData(), same result)
Это объект параметров дерева:
public customTemplateStringOptions: ITreeOptions = {
// displayField: 'subTitle',
// isExpandedField: 'expanded',
idField: 'uuid',
getChildren: this.getChildren.bind(this),
nodeHeight: 23,
allowDrag: (node) => {
return false;
},
allowDrop: (node) => {
return false;
}
}
Вот getTestData ():
getTestData() {
console.log('test data');
return [1, 2, 3];
}
Результаты: вывод на консоль последерево отображается
test data
test data
test data
test data
test data
test data
...
Эта проблема была открыта по следующей ссылке, но похоже, что она никогда не решалась, так как автор не ответил: Проблема ссылка