如何检索View
/ Fragment
sap.ui.core.Control
属于哪个?
BR 克里斯
答案 0 :(得分:6)
您可以走近父母,直到找到视图。但是,您不应该依赖标识符。使用类或元数据来标识视图:
buttonPress: function(oEvent){
var b = oEvent.getSource();
while (b && b.getParent) {
b = b.getParent();
if (b instanceof sap.ui.core.mvc.View){
console.log(b.getMetadata()); //you have found the view
break;
}
}
}
JSBin上的示例。
片段未添加到控制树中。所以你找不到它们。但是,您可以找到已添加的视图。
答案 1 :(得分:3)
如果控件的标识符包含View的标识符(如果您使用的是XML视图,则为“__xmlview42”),您可以将其解压缩并调用:
sap.ui.getCore().byId("__xmlview42")
获取包含视图。如果标识符不存在,您可以使用以下命令在控制树中导航:
control.getParent()
直到您拥有一个控件,其标识符包含View标识符。您还可以浏览控制树,直到到达视图。
对于片段,这不起作用,因为内容将成为父视图的一部分。