SAPUI5 重用视图并创建新实例

Posted

技术标签:

【中文标题】SAPUI5 重用视图并创建新实例【英文标题】:SAPUI5 reuse Views and make new instance 【发布时间】:2017-07-10 07:43:00 【问题描述】:

我是 SAP 的新手,正在尝试开发 SAPUI5 应用程序,但在重用视图/部分视图时遇到了一些问题。我想要一个局部视图并以特定格式传递自定义数据(数据更改但模型相同),并在一页中多次重用这些局部视图,每次传递不同的数据。不知何故像瓷砖,但非常定制化。 你建议我用什么? 我已尝试创建常规视图的新实例,但遇到此错误:

获取https://sapui5.hana.ondemand.com/resources/view/List.view.xml404 (未找到)

这是我创建新实例的代码:

var firstListView=sap.ui.xmlview("firstViw", "view.List");

感谢您的帮助

更新: 这是我的 index.html

    <!DOCTYPE html>
<html>
<head>
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta http-equiv='Content-Type' content='text/html;charset=UTF-8' />

    <script src="https://sapui5.hana.ondemand.com/resources/sap-ui-core.js"
            id="sap-ui-bootstrap"
            data-sap-ui-libs="sap.m, sap.ushell"
            data-sap-ui-xx-bindingSyntax="complex"
            data-sap-ui-theme="sap_belize"
            data-sap-ui-resourceroots='
            "sap.ui.appName": "./"
        '>
    </script>
    <script src="../libs/jquery.cookie.js"></script>

    <link href="css/site.css" rel="stylesheet" type="text/css" />
    <link href="css/library.css" rel="stylesheet" type="text/css" />
     <link href="css/theme/library.css" rel="stylesheet" type="text/css" />
    <script>

        sap.ui.getCore().attachInit(function () 
            new sap.m.Shell(
                appWidthLimited:false,
                app: new sap.ui.core.ComponentContainer(
                    name: "sap.ui.appName"
                )
            ).placeAt("content");
        );


    </script>
</head>
<body class="sapUiBody" role="application">
    <div id="content"></div>
</body>
</html>

这是结构化的文件夹:

【问题讨论】:

关于错误:index.html 中resourceRoots 定义的命名空间是什么?您的项目文件夹是如何构成的?如果您可以相应地更新问题,那就太好了。 感谢您的回答,我已经更新了这个问题。 @boghyon 【参考方案1】:

请查看 UI5 SDK 的“重用 UI 部件:片段”一章。 这是一个摘录。请看看这是否有帮助。

【讨论】:

感谢您的回答。所以你建议在这种情况下使用片段? Walkthrough(步骤 15-17)通过将对话实例化为片段很好地解释了这一点。

以上是关于SAPUI5 重用视图并创建新实例的主要内容,如果未能解决你的问题,请参考以下文章

BottomNavigationView - 如何避免重新创建片段并重用它们

重用 ViewPager 和 FragmentPagerAdapter 的片段

重用滤镜导致GPUImage黑屏

重用 AVAudioPlayer 以获得不同的声音

SAPUI5 根据匹配的上下文/路由动态更改文本

ViewController 类在创建视图时创建新实例,但它应该使用现有的实例