getBindin函数出现错误。页面加载后必须立即过滤数据。我制作了一个拆分应用程序,用户单击用户名后,在母版页中的所有详细信息都会显示在detailsPage。此代码用于detailsPage。出现以下错误
TypeError:无法读取未定义的属性'getBinding'
return Controller.extend("com.Second.SecondProject.controller.SecondPage", {
onInit: function () {
var oRouter = sap.ui.core.UIComponent.getRouterFor(this);
oRouter.getRoute("DetailsPage").attachMatched(this._onObjectMatched, this);
},
_onObjectMatched: function (oEvent) {
var selectedArguments = oEvent.getParameter("arguments");
var selectedRecord = selectedArguments.value;
console.log(selectedRecord);
var oList = sap.ui.getCore().byId("UserList");
var oBinding = oList.getBinding("users");
console.log(oBinding);
var aFilter = [];
aFilter.push(new Filter("name", FilterOperator.Contains, selectedRecord));
oBinding.filter(aFilter);
// var obj = {
// "Objects": selectedRecord
// };
// var navigationobjModel = new JSONModel();
// navigationobjModel.setData(obj);
// this.getView().setModel(navigationobjModel, "users");
}
});
});
答案 0 :(得分:1)
根据错误消息,您似乎没有在数据绑定中遇到问题,而是无法使用sap.ui.getCore().byId
获取列表。
假设您具有XML视图或使用createId
方法创建的ID,则应使用方法this.byId()
或this.getView().byId()
来获取列表。
提示:通常,当您遇到类似Cannot read property 'XXX' of undefined
之类的错误时,该错误通常出在您在XXX之前使用的变量中。
由于oList
变量未定义,因此出现此错误。