点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嘿,我是SAPUI5的新手,我的App有点问题。 我设置了一个主从应用程序,该应用程序在主视图中显示了一个客户列表。
我的目标是将此列表过滤到oData Service的任何属性(我正在使用Northwind Webservice)。
在这里您可以看到一个包含我的视图列表的代码段(MasterView.xml):
<列表 id =" list" items =" { 路径:"/客户", 分类器:{ 路径:" CompanyName", 降序:假 }, groupHeaderFactory:"。createGroupHeader" }" busyIndicatorDelay =" {masterView>/delay}" noDataText =" {masterView>/noDataText}" mode =" {= $ {device>/system/phone}?'无':'SingleSelectMaster'}" growth =" true" growthScrollToLoad =" true" updateFinished =" onUpdateFinished" selectionChange =" onSelectionChange"><工具栏 active =" true" id =" filterBar" visible =" {masterView>/isFilterBarVisible}" 按=" onOpenViewSettings"> <标题 id =" filterBarLabel" text =" {masterView>/filterBarLabel}"/> 工具栏> <项目>列表>
这是我在控制器(Master.controller.js)中所做的事情:
请不要只在//Tryout Filter和//End Tryout之间的注释之间插入代码。
当我想运行我的应用程序时,调试器会说:"无法读取未定义的属性'filter'",因为oBinding是未定义的。 希望大家能帮助我。 我只想在应用程序加载到用户屏幕时应用过滤器。
非常感谢和问候
onInit:函数(){ //控制状态模型 var oList = this.byId(" list"), oViewModel = this._createViewModel(), //放下主列表的原始值以延长繁忙指示器的时间, //,以便以后可以恢复。 主列表上的忙处理是 //由主列表本身负责。 iOriginalBusyDelay = oList.getBusyIndicatorDelay(); //试用过滤器 var equals = FilterOperator.EQ; var aFilterFoo = []; aFilterFoo.push(new Filter(" Country",equals," Germany")); var oBinding = oList.getBinding(" items"); oBinding.filter(aFilterFoo); //结束试用过滤器 this._oList = oList; //保持过滤器和搜索状态 this._oListFilterState = { aFilter:[], aSearch:[] }; this.setModel(oViewModel," masterView"); //确保忙碌指示立即显示,因此没有 //在加载视图的元数据的繁忙指示之后中断 //结束(请参阅AppController中的Promise'oWhenMetadataIsLoaded') oList.attachEventOnce(" updateFinished",function(){ //恢复列表的原始繁忙指示器延迟 oViewModel.setProperty("/img/delay",iOriginalBusyDelay); }); this.getView()。addEventDelegate({ onBeforeFirstShow:function(){ this.getOwnerComponent()。oListSelector.setBoundMasterList(oList); } .bind(this) }); this.getRouter()。getRoute(" master")。attachPatternMatched(this._onMasterMatched,this); this.getRouter()。attachBypassed(this.onBypassed,this); },
不对init进行过滤。 其次,使用滤镜数组添加多个属性作为滤镜
为什么在初始化时不进行滤镜? 有什么问题?
您可以使用$ .grep
解决此问题init,如果我没有记错的话,那时没有绑定。
我认为您可以在xml视图中删除绑定。 并使用bindaggregation在初始化中进行绑定
https://sapui5.hana。 ondemand.com/#/api/sap.ui.base.ManagedObject/methods/bindAggregation
您在init中准备的过滤器可以在该api中使用。
一周热门 更多>