在下面的代码中,我正在手动检查每个视图是否具有某些内容或为空。如果它有一些内容,那么我将销毁它。我不想手动检查每个视图,我想要一个可以动态选择非空视图的代码,以便我可以销毁该视图而无需手动检查,并且一次只有一个非空视图。

    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();
});


没有代码的上下文很难提供任何特定的细节。 ;-)我不确定您为什么还要摧毁它们?

09-25 10:09