在下面的代码中,我正在手动检查每个视图是否具有某些内容或为空。如果它有一些内容,那么我将销毁它。我不想手动检查每个视图,我想要一个可以动态选择非空视图的代码,以便我可以销毁该视图而无需手动检查,并且一次只有一个非空视图。
function reset_container() {
if (aasview != null) {
aasview.destroy();
}
if (alewives != null) {
alewives.destroy();
}
if (aa_amendview != null) {
aa_amendview.destroy();
}
if (aa_dispatchview != null) {
aa_view.destroy();
}
if (aa_postview != null) {
aa_postview.destroy();
}
if (cc_dispatchview != null) {
cc_dispatchview.destroy();
}
if (cc_postview != null) {
cc_postview.destroy();
}
if (cm_salesview != null) {
cm_salesview.destroy();
}
if(cc_view!=null){
cc_view.destroy();
}
if (cc_amendview != null) {
cc_amendview.destroy();
}
if (quotationview != null) {
quotationview.destroy();
}
if(truckview!=null){
truckview.destroy();
}
if (create_mnview != null) {
create_mnview.destroy();
}
if (create_stoview != null) {
create_stoview.destroy();
}
if(vehicle_view != null){
vehicle_view.destroy();
}
}
最佳答案
您如何创建视图?如果它们是聚合的(例如,在SplitApp母版/详细信息页面或App页面中),甚至只是在数组中,则可以简单地在它们上循环以简化代码:
例如存储在数组中:
[view1, view2, view3].forEach(function(view) {
if (view != null) { //might not need this test depending on how you populate the array
view.destroy();
}
})
例如存储在sap.m.SplitApp detailPages聚合中:
this.oRoot.getDetailPages().forEach(function(view) {
view.destroy();
});
没有代码的上下文很难提供任何特定的细节。 ;-)我不确定您为什么还要摧毁它们?