Sapui5 获取按下的表行的绑定数据对象-getBindingContext()返回Undefind
在SAPUI5中,我尝试获取用户按下时绑定到表行的数据对象(在我的控制器中)。我的视图是用XML定义的,当然我的控制器是用JS定义的 我已经检查过了,但它对我不起作用,或者缺少一些东西 我的看法(有关部分):Sapui5 获取按下的表行的绑定数据对象-getBindingContext()返回Undefind,sapui5,Sapui5,在SAPUI5中,我尝试获取用户按下时绑定到表行的数据对象(在我的控制器中)。我的视图是用XML定义的,当然我的控制器是用JS定义的 我已经检查过了,但它对我不起作用,或者缺少一些东西 我的看法(有关部分): 这里的相关部分显然是: 在我的控制器中,我有: handleLineItemPress:功能(evt){ log('evt.getSource:'+evt.getSource()); log('evt.getBindingContext:'+evt.getSource().getB
这里的相关部分显然是:
在我的控制器中,我有:
handleLineItemPress:功能(evt){
log('evt.getSource:'+evt.getSource());
log('evt.getBindingContext:'+evt.getSource().getBindingContext());
}
其日志如下:
items="{
path: 'statusJobs>/jobs',
sorter: {
path: 'start',
descending: true
}
}"
evt.getSource:Element sap.m.ColumnListItem#_item11-StatusJobs--lineItemList-0
evt.getBindingContext:未定义
evt.getSource
返回ColumnListItem,因此我可以使用对象层次结构获取单元格的文本,如:
evt.getSource().getCells()[0].getText();
但这似乎不是正确的方法,尤其是没有给出整个对象的唯一ID,我碰巧没有在表中显示它
我不知何故丢失了与我的数据模型的连接,这是我在代码前面的
项中绑定的,如下所示:
items="{
path: 'statusJobs>/jobs',
sorter: {
path: 'start',
descending: true
}
}"
我不想说,但我也有同样的问题,我花了很长时间才找到原因 这都与命名模型的使用有关,在您的案例中是
statusJobs
如果要检索绑定到命名属性的项的绑定上下文,出于某种原因(老实说,我想不出任何原因),还必须指定命名模型:
evt.getSource().getBindingContext("statusJobs");
将返回正确的绑定上下文
因此,要检索绑定到按下的行项目的实际对象,可以使用:
var obj = evt.getSource().getBindingContext("statusJobs").getObject();
由于一个上下文不能绑定到多个模型(据我所知),我真的不明白为什么需要特别指定命名模型名作为参数,但现在我想我们必须接受这种行为如果仍然没有定义,即使指定了正确的模型名,可能会重复什么?