我有一个图标选项卡过滤器,当用户选择它时,我想显示一棵树。
此处提供了如何处理用户选择图标的逻辑
我遇到的问题是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 :(得分:0)
您是否有理由想在以后添加内容?您还可以为每个IconTab添加特定内容,该内容在用户单击时显示。 这也应该可以解决你的问题。
如果这对您的情况不方便,我认为您应该在单击IconTab之后在IconTabBar或IconTabFilter上设置内容,而不是将它自己放在内容中。