网络图的UI5 Odata绑定

时间:2018-12-07 07:47:31

标签: odata sapui5

我想我在某种程度上缺少UI5 BindingContext和ElementBinding在复杂情况下如何工作。场景中,我有一个实体“ Network”,该实体具有两个导航属性“ Relations”和“ FunctionalObjects”。我现在的问题是,我无法使上下文正常工作。我有一个sap.suite.ui.commons.networkgraph来显示这种关系。

我的代码如下:

在ViewController的onInit中,使用expand参数将一个(element / BindingContext?)绑定到我的Graph:

//get the Graph by ID
this.Graph = this.byId("graph");

//Create the path with parameters       
var element = {
    path: "/Networks('DemoNet12')",
    parameters: {
        expand: "FunctionalObjects,Relations"
    }
};

//bind path to Graph
this.Graph.bindElement(element);

跟踪生成的oData调用看起来不错。框架将此调用丢弃到后端的正确服务:GET Networks('DemoNet12')?$expand=FunctionalObjects%2cRelations HTTP/1.1

但是我不知道如何将其连接到网络图的节点和线。

<Graph id="graph" orientation="TopBottom" nodes="{FunctionalObjects}"
    lines="{Relations}">
    <nodes>
        <Node key="{Identifier}"/>
    </nodes>
    <lines>
        <Line from="{ObjectFrom}" to="{ObjectTo}"/>
    </lines>
</Graph>

我认为组件的BindingContext是动态且相对的,因此当我将网络“ DemoNet12”绑定到Graph时,当我编写“ {/ Relations}”时,我将获得该图的关系。目前无法使用。我还看到该框架现在又GET Relations?$skip=0&$top=100 HTTP/1.1GET FunctionalObjects?$skip=0&$top=100 HTTP/1.1又丢了两个电话。

有人可以向我解释,我做错了吗?我尝试了几个星座,但目前没有任何效果。我使它起作用的唯一方法是编写此代码并完全注释掉javascript:

<Graph id="graph" nodes="{Networks('DemoNet12')/FunctionalObjects}" lines="{Networks('DemoNet12')/Relations}>"
    <!-- nodes and lines as above -->
</Graph>

但这会导致直接调用两次导航。

0 个答案:

没有答案