Sapui5 在UI5应用程序中找不到SelectedItem BindingContext

Sapui5 在UI5应用程序中找不到SelectedItem BindingContext,sapui5,Sapui5,我正在尝试查找selectedItem的绑定上下文。即使在将modelName传递给bindingContext之后,我仍然没有定义。当我执行oEvent.getSourcer()并查看obindingContext时,它是空白的。此外,ObindingInfo还有未定义的ocontext。虽然它已经吐了。正确的喷溅。在这种情况下,如何获取数组索引 oNewField = new sap.m.Select({ enabled: "{order>/" + Type+ "/" + i

我正在尝试查找selectedItem的绑定上下文。即使在将modelName传递给bindingContext之后,我仍然没有定义。当我执行oEvent.getSourcer()并查看obindingContext时,它是空白的。此外,ObindingInfo还有未定义的ocontext。虽然它已经吐了。正确的喷溅。在这种情况下,如何获取数组索引

oNewField = new sap.m.Select({
    enabled: "{order>/" + Type+ "/" + i + "/fieldEnabled}",
    forceSelection: false,
    width: "90%",
    // Add dropdoen Items
    items: [
        new sap.ui.core.ListItem({
            key: " ",
            text: " "
        }),
        new sap.ui.core.ListItem({
            key: "{order>/" + Type+ "/" + i + "/DefaultValue}",
            text: "{order>/" + Type+ "/" + i + "/DefaultValue}"
        })
    ],
    change : function(evt) {
        that.onChange(evt); 
    },
});

var selectedKey = this.getView().getModel('order').getProperty(
  "/" + Type+ "/" + i + "/DefaultValue");
oNewField.setSelectedKey(selectedKey); 
**关于变函数**

onChange: function(oEvent) {
    debugger;
    var key = oEvent.getSource().getSelectedItem().getKey();
    //need to get BindingContext here.
    var oContext = 
    oEvent.getSource().getSelectedItem().getBindingContext('order')
    //gives undefined
},
你完全正确。请注意,
oEvent.getSource()
指向
sap.m.Select
。您需要另一个
getSelectedItem()
才能转到所选的
sap.ui.core.Item


你完全正确。请注意,
oEvent.getSource()
指向
sap.m.Select
。您需要另一个
getSelectedItem()
才能转到所选的
sap.ui.core.Item

您根本没有进行任何聚合绑定。因此,没有可检索的上下文。您正在项目聚合中硬编码2个项目

检查这个片段。它向你展示了你能做的许多事情。我希望他们中的一个是你要找的

JSBIN:


带XmlView的MVC
//定义新的(简单的)控制器类型
sap.ui.controller(“my.own.controller”{
onInit:功能(oEvent){
//聚合绑定
var oSelect=new sap.m.Select({
项目:{
路径:“订单>/options”,
模板:new sap.ui.core.Item({
关键:{
路径:“顺序>键”
},
正文:{
路径:“顺序>值”
}
})
},
更改:this.onSelection1Change.bind(this)
});
this.getView().byId(“myPanel”).addContent(oSelect);

对于(var i=0;i您根本没有进行任何聚合绑定。因此,没有上下文可检索。您正在项目聚合中硬编码2个项目

检查这个片段。它向你展示了你可以做的许多事情。我希望你能找到其中的一个

JSBIN:


带XmlView的MVC
//定义新的(简单的)控制器类型
sap.ui.controller(“my.own.controller”{
onInit:功能(oEvent){
//聚合绑定
var oSelect=new sap.m.Select({
项目:{
路径:“订单>/options”,
模板:new sap.ui.core.Item({
关键:{
路径:“顺序>键”
},
正文:{
路径:“顺序>值”
}
})
},
更改:this.onSelection1Change.bind(this)
});
this.getView().byId(“myPanel”).addContent(oSelect);

对于(var i=0;我感谢你@Rafael静态列表方法和selection2change对我有效。另外,我在代码中做了一些调整。再次感谢你!!!感谢@Rafael静态列表方法和selection2change对我有效。另外,我在代码中做了一些调整。再次感谢你!!!
oEvent.getSource().getSelectedItem().getBindingContext()