【发布时间】:2015-06-11 07:19:05
【问题描述】:
我有一个多视图设置,一个主视图,然后是在某些操作后单击按钮打开的模块。
现在,每当视图打开时,我都会重置视图,但我想要完成的是,当视图离开时,它会从核心中消失并再次启动,就好像它是第一次打开一样。
我不确定如何,我尝试了多种方法,但都没有达到我的预期(.destroy(),.removeAllContent(),...)。
我错过了一个功能还是有办法实现它?
一些代码:
index.js(第一次如何实例化视图,第二次不调用)
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);
};
控制器(如何调用 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);
},
【问题讨论】:
-
能否请您添加代码,以便我可以有效地帮助您。我很好奇,因为
.destroy()肯定会破坏并删除核心视图。 -
没错,它会删除它,但是当我再次单击该按钮以打开视图时。什么都没有发生,视图也没有出现。
-
ye...你如何再次实例化视图...就像我说的一些代码会让我的生活更轻松
-
您是否在进行 ajax 调用以在视图被销毁后的下一次呈现?这可能是一个解决方案..
-
不,但您永远不应该通过切换可见性来显示视图。为此使用路由器
标签: javascript jquery node.js model-view-controller sapui5