2014-10-28 81 views
0

我有一个图标选项卡筛选器,用户选择它时,我想显示一棵树。UI5:将树添加到IconTabFilter内容

的我是如何处理的图标的用户选择的逻辑在这里

Handle IconTab Selection

提供我的问题是,这将创建树节点不工作的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的按钮,那么上面的代码(即方法)会被调用两次。

如果我启用树逻辑,该方法被调用两次,因此我得到一个重复树节点的错误。

任何帮助,非常感谢。

感谢

马丁

+0

现在修好了。问题是,如果您在工厂函数“bindAggregation”中放置警报,则显示错误并显示一个复制树ID。 – 2014-10-31 08:59:47

回答

0

是否有一个原因,为什么你想在以后添加的内容?您还可以为每个IconTab添加一个特定的内容,当用户点击它时会显示该内容。 这也应该可以解决你的问题。

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