我有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模型有不同的方法吗?
非常感谢任何帮助!
答案 0 :(得分:1)
使用ODataModel,您需要从模型中获取上下文的属性,尝试
var oModel = oEvent.getSource().getModel();
var oContext = oEvent.getSource().getBindingContext();
var sSomeHiddenValue = oModel.getProperty("property4", oContext);
HTH JSP