浏览器返回后视图中的属性丢失

时间:2017-04-30 20:37:48

标签: sapui5

我注意到,如果我使用浏览器后退按钮或导航回页面,我的应用程序的一个特定xml视图中的某些模型绑定似乎存在问题。 我可以在网络选项卡中看到我的模型仍然可以正常加载,并且属性('tlc' - 图像的src的文本)也在那里。

Property is loaded

但是大部分时间(不是所有的时间 - 也很奇怪)我得到404没找到,因为它似乎是空的,大多数只有List的一个元素(所有都以相同的方式加载图像.. 。):

enter image description here

当我最初使用此视图打开网址或刷新页面时,它工作正常。

这是我的图像列表的定义方式:

<List id="startListUpcoming" class="upcomingList sapUiSmallMarginTop" showNoData="false" items="{
  path: 'startlist>/startlistElements',
  filters: [
    {
      path: 'competitors/0/isMarked',
      operator: 'EQ',
      value1: false
    }
  ]
}">
  <items>
    <CustomListItem type="Active" press="onClickStarter">
      <HBox>
        <VBox class="sapUiSmallMarginBegin sapUiSmallMarginTopBottom">
          <Image src="/img/flags/{startlist>competitors/0/athlete/nation/tlc}.png" error="onFlagError" width="50px" height="50px" />
          <Label text="{startlist>time}"/>
        </VBox>
        <VBox class="sapUiSmallMarginBegin sapUiSmallMarginTopBottom">
          <Link text="{startlist>competitors/0/athlete/firstName} {startlist>startlist>competitors/0/athlete/familyName}" press="onClickRiderName"/>
            <Label text="{startlist>competitors/0/horse/name}"/>
        </VBox>
      </HBox>
    </CustomListItem>
  </items>
</List>

正如我所说。大多数情况下,此列表中只有一个元素受此影响。 有人知道为什么会这样吗?这真的很奇怪。

2 个答案:

答案 0 :(得分:0)

对我而言,这是由于实施不完整造成的。

例如:

如果Page1调用GetEntitySet,则返回字段 A,B和C

然后导航到您调用更新的Page2或仅返回 字段 A和C 的GetEntity。

这会导致使用空值更新OData客户端缓存。

这可能不是您的问题。当我遇到这个问题时,我没有像你一样检查过OData对象。

答案 1 :(得分:0)

我修好了。问题是我在attachRequestCompleted回调内的视图上设置模型,这导致模型不完整(不确定原因):

我改变了:

oJSONModel.attachRequestCompleted(function(oEvent) {
    this.getView().setModel(oJSONModel);
}

为:

oJSONModel.attachRequestCompleted(function(oEvent) {
}
this.getView().setModel(oJSONModel);