Sapui5 UI5 navContiner bindAggregation未加载页面
我需要通过绑定聚合来构建页面,如下所示 看法 但当我从调试器看到它只有一页 但是当我打电话给navtoSapui5 UI5 navContiner bindAggregation未加载页面,sapui5,Sapui5,我需要通过绑定聚合来构建页面,如下所示 看法 但当我从调试器看到它只有一页 但是当我打电话给navto handleNav : function(evt) { var navCon = this.getView().byId("navCon"); var target = evt.getSource().getText(); if (target) { //var animation = this.getView(
handleNav : function(evt)
{
var navCon = this.getView().byId("navCon");
var target = evt.getSource().getText();
if (target) {
//var animation = this.getView().byId("animationSelect").getSelectedKey();
navCon.to(this.getView().byId(target));
} else {
navCon.back();
}
}
如果我看到navCon.getPages()将给出2页。
我在这里犯了什么错误?
NavContainers
只能显示一页。您可以向页面聚合添加更多页面,但只有在使用正确参数触发导航事件时,这些页面才可见。然后,加载新页面的布局并将其添加到DOM中
如果是SplitApp
,如果您在平板电脑或桌面上看到它,应用程序可以显示两个页面(主页面和详细信息);但是,它是通过使用两个navcontainer
实现的
这就是为什么控件检查器在导航之前返回一个页面,第二个页面在您导航到它之前不是DOM的一部分
如果在代码中放置断点而不是使用控件检查器,则可以调用
navCon.getPages()
,该函数应返回聚合中的页数。您正在尝试将DOM元素传递给NavContainers.to(DOM)方法。这就是问题所在
但是NavContainers.to()方法可以接受id(字符串)作为参数
改变你的handleNav方法如下,它会工作
handleNav : function(evt)
{
var navCon = this.getView().byId("navCon");
var target = evt.getSource().getText();
if (target) {
navCon.to(target);
} else {
navCon.back();
}
}
你能告诉我怎样把第二页放到NavContiner上吗。。我正在做这个navCon.to(this.getView().byId(target));但是该页面不存在,因此byId无法工作。
handleNav : function(evt)
{
var navCon = this.getView().byId("navCon");
var target = evt.getSource().getText();
if (target) {
//var animation = this.getView().byId("animationSelect").getSelectedKey();
navCon.to(this.getView().byId(target));
} else {
navCon.back();
}
}
handleNav : function(evt)
{
var navCon = this.getView().byId("navCon");
var target = evt.getSource().getText();
if (target) {
navCon.to(target);
} else {
navCon.back();
}
}