【问题标题】:SAPUI5 View only clearing on refresh, how do I re-initialise the view contents?SAPUI5 仅在刷新时清除视图,如何重新初始化视图内容?
【发布时间】:2017-10-21 20:53:41
【问题描述】:

我在视图中使用了一个组件,以便我可以设置一个占位符 div。

<mvc:View xmlns:core="sap.ui.core" xmlns:mvc="sap.ui.core.mvc" xmlns="sap.m" xmlns:html="http://www.w3.org/1999/xhtml"
controllerName="CompleteSurvey.controller.CompleteSurvey">
<App>
    <pages>
        <Page title="{view>/surveyInfo/Name}">
            <content>
                <Text class="sapUiSmallMargin" text="{view>/siteInfo/SearchString}" id="__title0" width="auto" textAlign="Center"/>
                <core:HTML content="<div id="panelContent"><div>"></core:HTML>
            </content>
        </Page>
    </pages>
</App>

然后我在控制器中创建组件,并将它们放在“panelContent”

var oPanel = new sap.m.Panel({
expandable: true,
expanded: false,
headerText:oData.results[0].CategoryDesc
id: "Panel" + oViewData.surveyInfo.SurveyId + index
});

oPanel.placeAt("panelContent");

第一次工作正常,或者如果我刷新页面。

但是,如果我只是按返回键,然后再次进入,不幸的是“panelContent”中的内容没有被清除,除了我原来的面板之外,还会创建另一个面板。

请指教....

【问题讨论】:

    标签: view sapui5


    【解决方案1】:

    您使用术语“组件”,但我猜您是在谈论 UI5 控件,但是 UI5 中也有一个术语“组件”,所以请不要混淆它们,它们是不同的东西。

    您描述的行为看起来绝对正确。 阅读“placeAt”方法here的文档。

    没有任何额外的参数,它只是在容器中增加了一个控件。根据文档,您可以使用“only”参数自动删除容器中的现有内容。

    您应该记住,如果您使用“仅”的方法,容器中的现有控件不会被销毁,所以将留在内存中,我认为它们应该被销毁手动。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-09
    • 1970-01-01
    • 1970-01-01
    • 2010-10-24
    • 1970-01-01
    • 2016-11-24
    相关资源
    最近更新 更多