我有一个矩阵,单元格将简单元素或复合元素包含在其他元素内
这是过时的容器:
<div>
<murat [droppedItems]=" [[[],[]],[[],[]]]" [parent]='' >
</murat>
</div>
[[[[],[]],[[],[]]]用于2 * 2矩阵
这是递归容器(murat):
<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 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与父对象一起传递,但是由于这是一个矩阵而不是树,所以它是矩阵。
如何为嵌套矩阵单元获取相关的json?
注意:我希望图像能显示并描述情况。由于限制,我无法显示我所在区域的图像。