У меня есть матрица, в которой ячейки содержат простые элементы или составные элементы внутри других
это внешний контейнер:
<div>
<murat [droppedItems]=" [[[],[]],[[],[]]]" [parent]='' >
</murat>
</div>
[[[], []], [[], []]] для матрицы 2 * 2
это рекурсивный контейнер (мурат):
<ng-template #layoutTemplate let-pDroppedItems="droppedItems">
<muratinner [(droppedItems)]="droppedItems" [parent] ="parent"></muratinner>
</ng-template>
<ng-container *ngTemplateOutlet="layoutTemplate; context: {pDroppedItems: droppedItems, parent:parent}"></ng-container>
наконец, это самая внутренняя часть рекурсии (muratinner):
<li *ngFor="let item of getDroppedItemsNode(j,i)">
<murat [parent]="droppedItems"></murat>
</li>
getDroppedItemsNode выглядит так:
getDroppedItemsNode(j: number, i: number) {
var elems = this.droppedItems[j][i];
return elems.filter((x) => x.BizType == BizType.Container)
}
BizType enum:
enum BizType {
Container,
Label,
Textbox,
Checkbox,
Dropdown
}
Вот что происходит, когда я добавляю компонент в muratinner
onAnyDrop(e: DropEvent, j: number, i: number) {
this.droppedItems[j][i].push(e.dragData);
this.sharedService.elementActionOnDroppedItems.emit({
pDroppedItems: this.droppedItems,
result: this.result
})
}
Это событие, полученное от:
this.sharedService.elementActionOnDroppedItems.subscribe(($event: any) => {
localStorage.setItem("droppedItems", JSON.stringify($event.droppedItems))
});
Вот часть вопроса:
droppedItems: [[[{"Name":"Label","BizType":1}],[{"Name":"Textbox","BizType":2}]],[[{"Name":"Checkbox","BizType":3}],[{"Name":"Container","BizType":0}]]]
для
Однако у меня есть:
[[[{"Name":"Label","BizType":1}],[]],[[],[]]]
для
У меня есть попытки передать dropItems с parent, но поскольку это матрица, а не дерево, то это матрица.
Как мне получить соответствующий json для ячеек вложенной матрицы?
Примечание. Надеюсь, что изображения отображаются и отображают ситуацию. Я не могу отображать изображения из своего региона из-за ограничений.