ODataModel聚合的getBindingContext()返回undefined

时间:2014-10-10 09:04:15

标签: odata sapui5

我有sap.m.VBox控件,items聚合绑定到ODataModel数据集,因此由sap.m.HBox模板控件填充,其中包含多个sap.m.Input控件控件(绑定到相应的ODataModel的数据集属性)

在代码中:

<VBox items="{/My_ODatamodel_Dataset}">
    <items>
        <HBox>
            <Input value="{property1} change="doSomething"/>
            <Input value="{property2} change="doSomething"/>
            <Input value="{property3} change="doSomething"/>
        </HBox>
    </items>
</VBox>

(OData数据集应用了一个过滤器,但我为了简洁而将其留下了)

渲染的结果将是一个带有多行HBox的VBox(我的OData集中的每个条目一个),包含这些条目的输入字段。

在我的控制器中,我使用doSomething方法:

doSomething: function(oEvent) {
    var oCurrentContext  = oEvent.getSource().getBindingContext();
    var sSomeHiddenValue = oCurrentContext().getProperty("property4");
    // continue to do something special with hidden property 4 
}

然而,令我惊讶的是oEvent.getSource().getBindingContext()返回undefined ...

我想我在这里忽略了一些东西,但是当使用JSON模型而不是OData模型时确实工作......

我想要实现的是从我正在进行更改的当前条目中获取属性值。使用OData模型有不同的方法吗?

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

使用ODataModel,您需要从模型中获取上下文的属性,尝试

  var oModel = oEvent.getSource().getModel();
  var oContext = oEvent.getSource().getBindingContext();
  var sSomeHiddenValue = oModel.getProperty("property4", oContext);

HTH JSP