我将OData模型绑定到列表的项目,并尝试在
XML视图中使用以下语法动态应用过滤器:
<List id="supplierList" items="{ path : '/SupplierCollection',filters : { path : 'CompCode',operator : 'EQ',value1: { path : 'general>/companyCode' } } }"
此处使用的“常规”模型已在Component.js中定义,并且还在视图的控制器中引用:
onInit : function() { ... var generalModel = sap.ui.getCore().getModel("general"); this.getView().setModel(generalModel,"general"); ... }
不幸的是,模型似乎没有被解析,并且在运行时没有正确解释路径.但是,如果我对value1进行硬编码,那么过滤器就能正常工作.
关于这个问题的任何想法?
显然艾伦的答案是长期的正确方法,但同时我在我的控制器中使用了以下工作:
原文链接:https://www.f2er.com/xml/452479.htmlonInit: function() { this._oView = this.getView(); // ... any other init stuff ... this._oView.attachAfterRendering(function() { var sValue1 = "filter val"; var sPath = "fieldName"; var sOperator = "EQ"; var oBinding = this.byId("catalogTable").getBinding("items"); oBinding.filter([new sap.ui.model.Filter(sPath,sOperator,sValue1)]); }); }
只对服务进行一次调用(它不加载数据然后重新加载,我担心它可能).