getBindingContext()未定义的getProperty

时间:2016-06-14 13:33:09

标签: javascript data-binding sapui5

我在获取listItem

的绑定上下文方面遇到了问题

这是我的数据模型:

{
  "Items": [
        {
            "ItemTypeID": "0",
            "Name": "A"
        },
        {
            "ItemTypeID": "1",
            "Name": "B"
        },
        {
            "ItemTypeID": "2",
            "Name": "C"
        }
    ]
}

我的观点:

<List id="idItemTypes" mode="SingleSelectMaster" select="handleListSelect"
            items="{itemTypes>/ItemTypes}">
            <items>
                <StandardListItem title="{itemTypes>Name}" type="Navigation" />             
            </items>
        </List>

我的观点运作正常,并向我展示了我模型中的所有项目。但是,如果我从列表中选择一个项目,我就无法获得绑定上下文。它一直没有定义。

我的控制器:

handleListSelect : function(oEvent) {
    this._showDetail(oEvent.getParameter("listItem"));
},
_showDetail : function(oItem) {
    this.getRouter().navTo("Items", {
        console.log( oItem.getBindingContext() ); //undefined
        ItemTypeID : oItem.getBindingContext().getProperty("ItemTypeID")
    });
}

1 个答案:

答案 0 :(得分:4)

常见错误:如果使用命名模型,请不要忘记将模型名称指定为getBindingContext方法的参数: - )

this.getRouter().navTo("Items", {
    console.log( oItem.getBindingContext("itemTypes") ); //should now hold an object
    ItemTypeID : oItem.getBindingContext("itemTypes").getProperty("ItemTypeID")
});