Sapui5 嵌入视图中的页面内容不完全可见
我正在尝试建立一个应用程序,其中有几个视图。第一个视图显示一个列表和一个“创建”按钮。单击“创建”按钮后,将显示第二个视图 我希望能够将子视图嵌入到第二个视图中Sapui5 嵌入视图中的页面内容不完全可见,sapui5,Sapui5,我正在尝试建立一个应用程序,其中有几个视图。第一个视图显示一个列表和一个“创建”按钮。单击“创建”按钮后,将显示第二个视图 我希望能够将子视图嵌入到第二个视图中 嵌入式视图: 我可以看到子视图的标题,但没有按钮 在尝试嵌入此子视图时,我是否做了一些“特殊”的事情?我们也为子视图使用了片段,它工作得很好,但我发现将其放在JSFIDLE中有点麻烦。它仍然尝试过,请参见下文。您不需要在片段周围有视图标记。在项目中,片段的名称应为xx.fragment.xml,并且不需要控制器。 然后,您应该能
嵌入式视图:
我可以看到子视图的标题,但没有按钮
在尝试嵌入此子视图时,我是否做了一些“特殊”的事情?我们也为子视图使用了片段,它工作得很好,但我发现将其放在JSFIDLE中有点麻烦。它仍然尝试过,请参见下文。您不需要在片段周围有视图标记。在项目中,片段的名称应为xx.fragment.xml,并且不需要控制器。 然后,您应该能够将其作为xml直接包含在xml视图中
另请参见我们也在子视图中使用了片段,它工作得很好,但我发现将其放在JSFIDLE中有点麻烦。它仍然尝试过,请参见下文。您不需要在片段周围有视图标记。在项目中,片段的名称应为xx.fragment.xml,并且不需要控制器。 然后,您应该能够将其作为xml直接包含在xml视图中
另请参见如前所述,您可以使用对内容的“小部分”有利的片段。 另一种解决方案是在视图中包含一个具有内部页面的Shell组件,然后使用路由机制,以便将“子视图”的内容加载到此Shell页面: 在主视图上:
<Shell id="shellContainer" appWidthLimited="false">
<App id="appContainer" backgroundOpacity="0"></App>
</Shell>
"targets": {...
"YourSubViewDestination": {
"viewType": "XML",
"viewName": "YourSubViewName",
"controlAggregation": "pages",
"controlId": "appContainer",
"parent": "YourMainViewDestination"
}
...}
this.getOwnerComponent().getRouter().navTo("YourSubViewDestination", {});
创建按钮操作:
<Shell id="shellContainer" appWidthLimited="false">
<App id="appContainer" backgroundOpacity="0"></App>
</Shell>
"targets": {...
"YourSubViewDestination": {
"viewType": "XML",
"viewName": "YourSubViewName",
"controlAggregation": "pages",
"controlId": "appContainer",
"parent": "YourMainViewDestination"
}
...}
this.getOwnerComponent().getRouter().navTo("YourSubViewDestination", {});
您可能需要一些路由方面的帮助:如前所述,您可以使用适合“小部分”内容的片段。 另一种解决方案是在视图中包含一个具有内部页面的Shell组件,然后使用路由机制,以便将“子视图”的内容加载到此Shell页面: 在主视图上:
<Shell id="shellContainer" appWidthLimited="false">
<App id="appContainer" backgroundOpacity="0"></App>
</Shell>
"targets": {...
"YourSubViewDestination": {
"viewType": "XML",
"viewName": "YourSubViewName",
"controlAggregation": "pages",
"controlId": "appContainer",
"parent": "YourMainViewDestination"
}
...}
this.getOwnerComponent().getRouter().navTo("YourSubViewDestination", {});
创建按钮操作:
<Shell id="shellContainer" appWidthLimited="false">
<App id="appContainer" backgroundOpacity="0"></App>
</Shell>
"targets": {...
"YourSubViewDestination": {
"viewType": "XML",
"viewName": "YourSubViewName",
"controlAggregation": "pages",
"controlId": "appContainer",
"parent": "YourMainViewDestination"
}
...}
this.getOwnerComponent().getRouter().navTo("YourSubViewDestination", {});
您可能需要一些路由方面的帮助:您可以向我们展示您的控制器吗?您对控制器的问题向我发问以获取controller.js文件的代码。在那里,我看到了一个叫做“frag”的变量的一些逻辑。我觉得自己像个傻瓜。我不再犯这个错误了,但是,我看不到我的ID为“stuffButton”的附加按钮。这很奇怪,当我运行你的代码时,我真的可以看到它。我没有。我看到的只是标题。我不认为你有一个JSFIDLE,你已经试过了吗?我能看到吗?这个问题被反复问了很多次,我想是时候最终解决它了。这有用吗?-->-按照链接中的建议,尝试将
height=“100%”
添加到父视图和嵌入视图中。此外,您的根视图可能缺少根控件(),以便将来的读者可以重现该问题。您可以向我们展示您的控制器吗?您对控制器提出的问题让我去获取controller.js文件的代码。在这里,我看到了一个名为“frag”的变量的一些逻辑。我觉得自己像个傻瓜。我不再出现此错误,但是,我没有看到ID为“stuffButton”的附加按钮。这很奇怪,当我运行你的代码时,我能看到它。真的。我看不到。我看到的只是标题。我想你没有一个JSFIDLE,你已经试过了,我看到了吗?这个问题被问了很多次,我想是时候最终解决它了。这有帮助吗?-->-如链接中所建议的,尝试添加height=“100%”
到父视图和嵌入视图。此外,您的根视图可能缺少根控件(),以便将来的读者可以重现该问题。