sapui5 CustomTreeItem如何删除树形结构中的项目

时间:2019-05-07 12:15:05

标签: javascript sapui5

在删除嵌套JSON数组结构中的对象时遇到问题。 enter image description here

如果看到上面的图片,则用户可以选择添加项目或删除项目。

您可以删除一个项目(它可以是父项或子项)。如果要删除父项,则相应的子项也应删除。如果您删除最后一个Item(Tile3),则只能删除该项目。

下面是我尝试使用..

的代码

XML ::

<Tree items="{path : 'selModel>/',parameters: { numberOfExpandedLevels: 4}}" toggleOpenState="expandCollapseTree" id="Tree" class="sapUiTinyMarginTop tilesClass selTree">
    <dragDropConfig>
        <dnd:DragDropInfo sourceAggregation="items" targetAggregation="items" dragStart="onDragStart" drop="onDrop"/>
    </dragDropConfig>
    <CustomTreeItem id="treeItem" detailPress="pressCustomTreeItem">
        <VBox class="customSelTile" id="customSelTile">
            <HBox>
                <HBox width="100%">
                    <VBox visible="{= ${selModel>enabled} ? false: true }" class="sapUiTinyMarginTop customTxts">
                        <Label class="sapUiSmallMarginBegin headTxtFont" text="{selModel>text}"/>
                        <Label class="sapUiSmallMarginBegin subHeadTxtFont" text="{selModel>subheader}"/>
                    </VBox>
                    <VBox visible="{selModel>enabled}" class="sapUiTinyMarginTop customTxts">
                        <Input class="sapUiSmallMarginBegin headTxtFont" value="{selModel>text}"/>
                        <Input class="sapUiSmallMarginBegin subHeadTxtFont" value="{selModel>subheader}"/>
                    </VBox>
                </HBox>
                <Button class="sapUiTinyMarginBegin sapUiTinyMarginTop" press="addTile" icon="sap-icon://add"/>
                <Button class="sapUiTinyMarginBegin sapUiTinyMarginTop sapUiTinyMarginEnd" press="removeTile" icon="sap-icon://less"/>
            </HBox>
        </VBox>
    </CustomTreeItem>
</Tree>

控制器::

removeTile: function (oEvt) {

    var _oItem = oEvt.getSource().getParent().getParent().getParent();
    var _sBindingPath = _oItem.getBindingContextPath();
    var _oModel = this.getView().getModel("selModel");
    var aData = _oModel.getProperty(_sBindingPath);
}

在aData中无法获取选定的对象数据。但是,如何删除所选对象并再次在模型中形成更新的JSON数据?

有人可以帮助我解决任何问题吗?

先谢谢您。

1 个答案:

答案 0 :(得分:0)

使用以下代码解决了该问题...

MultiValueMap<String, String> headers = new LinkedMultiValueMap<String, String>();
headers.add("Authorization", AuthToken);
headers.add("Content-Type", "application/json");

MultiValueMap<String, String> body = new LinkedMultiValueMap<String, String>();
body.add("channel", channel);
body.add("text", text);

HttpEntity<?> request = new HttpEntity<>(body, headers);
restTemplate.postForObject(postMessageUrl, request, String.class);