Я получаю данные с сервера. Данные выглядит следующим образом:Angular2/PrimeNG - перемещение элементов в Treeview динамическим способом
а/ABCA/abcsd/absc.dat
С количеством косых черт, отличающимися от пути к пути.
Теперь я хочу отобразить его в древовидной структуре с использованием PrimeNG. Это насколько я:
for (var i = 0; i < this.test.length; i++) {
let regex = /([^\/]+)\/?/g;
let result: RegExpExecArray;
while ((result = regex.exec(this.test[i])) !== null) {
console.log(result[1]);
if (result[1].search(".dat")>0) {
let item = {
"label": result[1],
"data": "Documents Folder",
"icon": "fa-file-text-o"
}
this.tree.push(item)
}
else {
let item = {
"label": result[1],
"data": "Documents Folder",
"expandedIcon": "fa-folder-open",
"collapsedIcon": "fa-folder",
"children": [{
}]
}
this.tree.push(item)
}
}
}
«тест» это данные, как описано выше. Я ищу/с регулярным выражением. «результат [1]» даст мне строки между косой чертой. Что я могу сделать сейчас проверяет ли сво .dat или нет, а затем вставьте его в TreeView с treeviewstructure нечто вроде этого (пример сверху):
-abc
-abca
-abcsd
-absc.dat
Как вы можете видеть, я я не могу отобразить правильную структуру папки. Я могу жестко закодировать его, получив количество косой черты, а затем сделаю случай переключения, чтобы подтолкнуть его в правильном порядке, но я хочу int динамически.
Так что мне нужно это в динамике:
for 3 slashes:
first item: this.items.push(item)
sec. item : this.items[0].children.push(item)
third. item: this.items[0].children[0].children.push(item)
for x slashes:
???
Любые идеи?