我有2个视图:在master1中显示项目列表,当我点击一个项目时,我导航到master2。在控制器master1.js的代码看起来是这样的:SAPUI5导航并返回
onSelect : function(oEvent) {
this.getRouter().navTo("master2", {
from : "master1",
zlonr : oLoadingOrder.LoNumber
});
},
在onRouteMatched master2.js我有这样的代码:
onRouteMatched : function(oEvent) {
var that = this;
var oParameters = oEvent.getParameters();
if (oParameters.name === "master2") {
var oView = this.getView();
var oDialog = oView.byId("dialogBaseInfo");
if (!oDialog) {
oDialog = sap.ui.xmlfragment(oView.getId(),"ZABC.view.fragment.BaseInfo",this);
oView.addDependent(oDialog);
}
this.setCurrentDateTime();
oDialog.open();
},
所以我只是打开一个对话框。 我可以看到对话框打开,但它马上又关闭,但它进入master2屏幕。调试器中没有错误。 我的路由看起来是这样的:
pattern: "master1",
name: "master1",
view: "Master1",
// viewLevel: 1,
targetAggregation: "pages",
clearControlAggregation: true,
targetControl: "masterAppId",
subroutes: [
{
pattern: "zlonr/{zlonr}",
name: "master2",
view: "Master2",
// viewLevel: 1,
targetAggregation: "pages",
任何想法,为什么出现这种情况?对话应当保持开放并继续。
嗨,谢谢你的意见。这听起来是正确的,但它仍然关闭对话。在试图导航到master2之前,我试图把它放在master2的init中,但仍然关闭了对话框。 – Tim
@Tim:我明白了。如果你能发布一些更多的代码或者我们可以重现问题的最小范例,那将会很好。否则,您可以通过调用堆栈进行调试,以确定从哪个模块调用哪个模块会破坏(或关闭)对话框。 – boghyon
再次感谢您的帮助。我改变了一些设置,导航后没有立即调用对话框。找不到解决此问题的另一种方法。非常感谢您的帮助! – Tim