Sapui5 UI5:将树添加到IconTabFilter内容

Sapui5 UI5:将树添加到IconTabFilter内容,sapui5,Sapui5,我有一个图标选项卡过滤器,当用户选择它时,我想显示一个树 这里提供了如何处理用户选择图标的逻辑 我遇到的问题是,将创建树节点的JS不工作。这样做的逻辑如下:- var oModel = new sap.ui.model.json.JSONModel({ "idocs1" : [ { "Docnum" : "00063463",

我有一个图标选项卡过滤器,当用户选择它时,我想显示一个树

这里提供了如何处理用户选择图标的逻辑

我遇到的问题是,将创建树节点的JS不工作。这样做的逻辑如下:-

var oModel = new sap.ui.model.json.JSONModel({
                        "idocs1" : [ {
                                "Docnum" : "00063463",
                                "Mestyp" : "MATMAS",
                                "Status" : "53",
                                "Sndprn" : "EXTSYS1",
                                "Direct" : "Inbound",
                                "Message" : "Material 00002342 Created",
                                "messages" : [ {
                                    "message" : "Material 00002342 Created"
                                } ],
                                "segments" : [ {
                                    "segment" : "E1MARAM",
                                    "fields" : [ {
                                        "fieldName" : "MATNR"
                                    } ]

                                } ]
                            } ]
                        });

                        sap.ui.getCore().setModel(oModel);

                        var tgtPath = "/idocs1/0/segments";
                        var oTree = new sap.ui.commons.Tree("tree");

                        oTree.bindAggregation("nodes", tgtPath, function(
                                sId, oContext) {

                            var treePath = oContext.getPath();

                            var bindTextName = '';
                            if (treePath.indexOf("fields") !== -1) {
                                bindTextName = "fieldName";
                            } else {
                                bindTextName = "segment";
                            }

                            alert("here = " + oContext + " ---- "
                                    + bindTextName);
                            return new sap.ui.commons.TreeNode()
                                    .bindProperty("text", bindTextName);

                        });


                        var myButton = new sap.ui.commons.Button("btn");

                        myButton.setText("Hello World!");

                        myButton
                                .placeAt("idViewRoot--idViewDetail--toolBar-content");

                        oTree
                                .placeAt("idViewRoot--idViewDetail--toolBar-content");
此逻辑位于方法中,当用户选择特定的IconTab时会调用该方法

我有一个按钮,以确保当树逻辑被注释掉时,它会向IconTab内容添加一些内容

我注意到,如果我尝试创建两个相同ID的按钮,那么上面的代码即方法会被调用两次

如果启用树逻辑,则该方法将被调用两次,因此,对于重复的树节点,将出现错误

非常感谢您的帮助

谢谢


Martin

您有什么理由希望以后添加内容吗?您还可以为每个IconTab添加特定内容,当用户单击该图标时,会显示该图标。 这也会解决你的问题


如果这对您的情况不方便,我认为您应该在单击IconTab后,在IconTabBar或IconTabFilter上设置内容,而不是自己将其放入内容中。

现在已将其修复。问题是,如果在工厂函数bindAggregation中放置警报,则该警报似乎与dup树ID有关。