导航时的数据绑定问题&路由?

时间:2016-06-03 04:21:03

标签: data-binding routing navigation sapui5

今天我遇到了一个奇怪的问题(可能是一个愚蠢的问题),当导航到第二个视图时显示来自OData模型的数据列表和底部的面板

我已将代码复制到此link - http://plnkr.co/edit/ClZqvo?p=info(您也可以通过RUN在顶部运行它) - 请在chrome中运行它并禁用安全性(由于CORS问题)< / p>

现在问题是当我导航到第二个视图(OData表)然后选择任何列表项时,您将在底部看到,Panel将反映所选项(因为我使用了BindElement方法来绑定路径)。在此之后我点击回来然后再次出现我的第一个视图(JSON表)我单击Next Button然后再次出现第二个视图。当我选择之前选择的相同项目时,此时Panel将不会显示所选项目。只有当我来回导航并选择相同的项目时才会出现此问题。无法理解是什么造成的?

但如果我选择任何其他项目,它会显示所选项目。

有人对此有任何想法吗?

〜拉胡

1 个答案:

答案 0 :(得分:0)

使用bindElement时这是常见问题,我也遇到过这个问题。它可能无法解析引用实体的上下文。因此,字段不会绑定相应的值。

作为替代方案,您可以使用setBindingContext绑定面板中的字段。

由于您使用的是命名模型,因此应将其指定为setBindingContext的参数。

所以你的代码就像

onSelect: function(oEvent) {
    var oContext = oEvent.getSource().getBindingContext("odataModel");
    var oProductDetailPanel = this.getView().byId("prodDetailsPanel");
    oProductDetailPanel.setBindingContext(oContext, "odataModel");
}