首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当绑定到主详细信息应用程序中的元素时出现OData错误

当绑定到主详细信息应用程序中的元素时出现OData错误
EN

Stack Overflow用户
提问于 2021-05-25 07:09:19
回答 1查看 191关注 0票数 2

我开发了一个主细节应用程序。在细节视图中,我使用的是一个DynamicPage,在内容中,我使用的是一个包含3个项的IconTabBar元素。每个项目都是一个具有Smartform的不同片段。

主视图正在从一个(MasterEntity)加载数据。

Detail视图使用实体MasterEntity中的一些字段。

片段1:正在使用DetailEntitySet

片段2:正在使用DetailEntitySet

片段3:正在使用DetailEntitySet

基本上,当细节视图控制器检测到RouteMatch时,我在主视图上接收选定的行,并将其绑定到视图详细信息。完成后,我将检查视图是否生成,然后调用一个方法将扩展的实体绑定到包含这3个片段的iconTabBar元素。守则如下:

代码语言:javascript
复制
function _onRoutePatternMatched(event) {
    if (event.getParameter("name") === "detail") {
        var path = event.getParameter("arguments").contextPath;
        if (path !== " ") {
            var path2 = "/" + path;
            view.bindElement(path2);
            if (view) {
                this._setBindingToIconTab("Master2Detail");
            }
        } else {
            view.unbindElement();
        }
    }
}

_setBindingToIconTab函数如下:

代码语言:javascript
复制
_setBindingToIconTab: function (sAssociation) {
    view.byId("iconTabBar").bindElement(sAssociation);
}

iconTabBar是我在Detail视图中分配给IconTabBar元素的ID。

问题是,当我执行它并加载第一个片段时,一切正常。对于第2和第3部分,我得到了错误(但是值显示在.)。当片段在屏幕上被选中时,我正在加载它们。如果没有生成它们,我将实例化它们并将它们存储在数组中。我所犯的错误是:

断言失败:在"ZZODATA_TEST_SRV.Master“实体类型中找不到EDM属性"DateFrom”。- sap.ui.comp.smartfield.ODataControlFactory

它在抱怨来自DetailEntitySet的字段不在MasterEntitySet中。

你能帮我一把吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-26 09:15:33

由于没有XML、运行示例等,所以我无法告诉您为什么会发生此错误,但是..

最佳实践是biind还可以在详细视图中查看所选实体,并展开到细节等。

代码语言:javascript
复制
MasterEntitySet->DetailEntitySet

由于绑定被传播到子节点,因此不需要再次绑定iconTabBar。数据已经在那里了。我也不知道你的情况,但大多数服务都是这样的

代码语言:javascript
复制
MasterEntitySet->DetailEntitySet->DataVariantA(ForIconTab1)
                                ->DataVariantB(ForIconTab2)
                                ->DataVariantC(ForIconTab3)

在V4中,详细代码如下所示

代码语言:javascript
复制
oView.bindObject({
                path: "/MasterEntity(" + this._args.ID + ")",
                parameters: {
                      $expand:`DetailEntityNavPath($expand=DataVariantANavPath()...`
                },
                events: {
                    dataReceived: (oEvent) => {...
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67683268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档