Я использую компонент дерева материалов.
Что я хочу сделать, это сохранить состояние дерева в локальном хранилище и впоследствии извлечь его.
Я сериализую данные dataSource в json (JSON.stringify) и затем десериализовать его
Вот функция:
initTree() {
const tree_json = localStorage.getItem(this.storage_key)
if (tree_json != null) {
const nodes = JSON.parse(tree_json)
this.dataSource.data = nodes
this.matTree.renderNodeChanges(nodes)
} else {
this.treeSource.getRootNodes().subscribe(nodes => {
this.dataSource.data = nodes
})
}
}
Похоже, что это работает, но не на всех .. Если я нажму на расширенный узел, он не рухнет, ондобавляет дублированного ребенка.Как правильно сохранить дерево?
Я нашел это, может быть, мне нужно как-нибудь вызвать render?https://material.angular.io/components/tree/api#MatTree