Hallo, ich verwende für eine Baumstruktur wie der Kategorienbaum die Vue Component sw-tree und habe hierzu Kontextmenü-Einträge über den actions Slot ausgetauscht. Darin sind Elemente unterschiedlicher Entity Typen enthalten. In der ersten Ebene arbeiten die Menüpunkte wie erwartet. In darunterliegenden Ebenen erhalte ich in der Entwicklerkonsole in Chrome folgende Ausgabe:
index.js:31 An error was captured in current module: TypeError: addElement is not a function
at click (eval at createFunction (vue.esm.js:1:1), :24:762)
at invokeWithErrorHandling (vue.esm.js:1872:1)
at HTMLDivElement.invoker (vue.esm.js:2197:1)
at original._wrapper (vue.esm.js:7609:1)
Hierbei mache ich von der im Slot bereitgestellten Methode addElement() Gebrauch, die in untergeordneten Baumelementen aber aus unerklärlichen Gründen nicht verfügbar ist.
<sw-tree
after-id-property="afterId"
:items="profile"
:active-tree-item-id="itemId"
:on-change-route="changeItem"
@delete-element="onDeleteItem"
>
<template #items="{treeItems, sortable, draggedItem, newElementId, checkItem, onChangeRoute}">
<sw-tree-item
v-for="(item, index) in treeItems"
:key="item.id"
:item="item"
:should-show-active-state="true"
:on-change-route="onChangeRoute"
:new-element-id="newElementId"
:get-item-url="getItemUrl"
>
<template
#actions="{
item,
openTreeItem,
addElement,
addSubElement,
onDuplicate,
onChangeRoute,
deleteElement,
toolTip,
isDisabled
}"
>
<sw-context-button
class="sw-tree-item__context_button"
:disabled="isDisabled"
>
<sw-context-menu-item
class="sw-tree-item__without-position-action"
@click="addElement(addTypeForCreate(item, 'profile'))"
>Neues Profil</sw-context-menu-item>
<sw-context-menu-item
class="sw-tree-item__without-position-action"
@click="addSubElement(addTypeForCreate(item, 'attribute')); openTreeItem(true)"
>Neues Attribut</sw-context-menu-item>
</sw-context-button>
</template>
</sw-tree-item>
</template>
</sw-tree>
Die Core Compenent sw-tree-item enthält den benannten Scoped Slot actions, worin deutlich erkennbar ist, dass die addElement Methode übergeben wird. Wie kommt das, dass die Methode nur in Baumelementen erster Ebene verfügbar ist?