删除视图并再次打开它,就像它是新的一样 - SAPUI5

时间:2015-06-11 07:19:05

标签: javascript jquery node.js model-view-controller sapui5

我有一个多视图设置,一个主视图,然后是在某些操作后按下按钮打开的模块。

现在,只要打开视图,我就会重置视图,但是我想要完成的是,当视图离开时,它从核心中消失并再次启动,就好像它是第一次打开一样。

我不确定如何,我尝试了多项内容,没有按预期工作(.destroy().removeAllContent(),......)。

我是否错过了某项功能,或者有没有办法实现这一目标?

部分代码:

index.js(第一次如何实例化View,第二次不再调用)

module.exports.Partner = function(place) {
    View = require('./app/js/suche.view');
    Bearbeiten = require('./app/js/bearbeiten.view');
    var ctrl = View.getController();
    ctrl.setPlace(ctrl, place);
    ctrl.setEditPlace(ctrl, place);
    ctrl.setCreatePlace(ctrl, place);
    sap.ui.getCore().byId('suche').placeAt(place);
    sap.ui.getCore().byId('suche').byId('searchBtn').attachPress(ctrl.nummerSearch, ctrl);
};

controller(如何调用View和index.js)

handlePartnerSuche : function(){
        this.hideView(); //this is the main view
        var p = require('bit-js-business-partner');
        var partner_view = p.Partner('content');
        p.setCallbackForSchliessen(this, this.callbackForSchliessen);
  },

控制器(回调函数)

callbackForSchliessen: function(){
        this.showView();
    },

第二个视图(如何关闭)

handleSchliessen : function () {
        var p = this.getView('suche');
        p.setVisible(false);

        this.callbackMethodSchliessen.call(this.callbackCtrlSchliessen);
    },

1 个答案:

答案 0 :(得分:1)

您提到由于公司限制,您无法使用路由器机制 - 我真的很想知道这些限制是什么; - ) - 并切换visibility属性相反的意见。

在这种情况下,我会在方法中触发OData服务,在该方法中将视图的可见性设置为可见,并(重新)将ODataModel绑定到该视图。

从性能角度来看,我不建议从核心

中销毁视图