页面加载后,getBinding无法正常工作

时间:2018-12-10 14:22:25

标签: sapui5

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");
    }
});

});

1 个答案:

答案 0 :(得分:1)

根据错误消息,您似乎没有在数据绑定中遇到问题,而是无法使用sap.ui.getCore().byId获取列表。

假设您具有XML视图或使用createId方法创建的ID,则应使用方法this.byId()this.getView().byId()来获取列表。

提示:通常,当您遇到类似Cannot read property 'XXX' of undefined之类的错误时,该错误通常出在您在XXX之前使用的变量中。

由于oList变量未定义,因此出现此错误。