我有一个多 View 设置,一个主视图,然后是在某些操作后单击按钮打开的模块。
现在,无论何时打开 View ,我都会重置 View ,但我想要完成的是,当 View 离开时,它从核心消失并再次启动,就像第一次打开一样。
我不确定如何,我尝试了很多东西,但没有一个像我预期的那样工作(.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);
},
Controller (回调函数)
callbackForSchliessen: function(){
this.showView();
},
第二个 View (它是如何关闭的)
handleSchliessen : function () {
var p = this.getView('suche');
p.setVisible(false);
this.callbackMethodSchliessen.call(this.callbackCtrlSchliessen);
},
最佳答案
您提到由于公司限制您不能使用路由器机制 -- 我真的很想知道这些限制是什么;-) -- 并切换可见性
取而代之的是各个 View 的属性。
在那种情况下,我会在您将 View 的可见性设置为可见的方法中触发 OData 服务,并将 ODataModel(重新)绑定(bind)到该 View 。
从性能的 Angular 来看,我不建议从核心破坏 View
关于javascript - 删除一个 View 并单击再次打开它,就好像它是新的一样 - SAPUI5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30774143/