Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sapui5 UI5 navContiner bindAggregation未加载页面_Sapui5 - Fatal编程技术网

Sapui5 UI5 navContiner bindAggregation未加载页面

Sapui5 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(

我需要通过绑定聚合来构建页面,如下所示

看法

但当我从调试器看到它只有一页

但是当我打电话给navto

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();
    }
}