如何刷新事件处理程序中的ODataModel
How to Refresh an ODataModel inside an event handler
我正在创建一个SplitApp。在它中,我通过MockServer设置了一个OData模型作为默认模型,该模型之前已经过测试,并且工作正常。
当前显示的母版页在页眉上有一个搜索字段。正在调用搜索处理程序,我在其中对List的项绑定设置了一个筛选器,但没有调用模拟后端。
对oList.getBinding('items')的调用返回undefined。我已经检查了绑定是否存在于列表mBindingInfos中,但属性绑定未定义。尽管如此,还是定义了一个模板和一个工厂属性。
如何在正确应用过滤器的情况下触发对模拟后端的调用?
我使用的是sapui5版本1.20.7。
以下是视图的片段
<content>
<List id="listViagens"
items="{/ViagemCollection}"
mode="{device>/listMode}"
noDataText="Nenhuma viagem encontrada"
select="onSelect"
growing="true"
growingScrollToLoad="true">
<items>
<ObjectListItem
type="{device>/listItemType}"
press="onSelect"
title="{Matricula}">
</ObjectListItem>
</items>
</List>
</content>
这是事件处理程序
onSearch: function() {
var aFilters = [];
var sSearchValue = this.getSearchValue();
var oList = this.getListaViagens();
var oFilter;
if (sSearchValue && sSearchValue.length > 0) {
oFilter = new sap.ui.model.Filter("Matricula", sap.ui.model.FilterOperator.EQ, sSearchValue);
aFilters.push(oFilter);
}
oList.getBinding('items').filter(filters);
},
这是sap.m.List getBinding的定义。。。它返回undefined,因为此.mBindingInfos[sName].binding未定义。
function (sName){
"use strict";
return this.mBindingInfos[sName] && this.mBindingInfos[sName].binding;
}
如有任何帮助,我们将不胜感激。
当提供了绑定信息但没有创建实际绑定时,可能有两个原因:
- 绑定信息不完整或不正确(例如拼写错误)。你可能需要仔细检查一下
- 模型没有传播到控件,因此绑定信息无法解析为绑定对象。您可能需要调用
oList.getModel()
来检查模型是否已传播到您的控件
在上面提到的两件事之间的另一个潜在错误是使用命名模型(即在某个地方执行this.setModel(oModel, "myModelName")
)。在这种情况下,您可以通过例如oList.getModel("myModelName")
从控件中获取模型。此外,在进行绑定时,您需要在绑定路径前面加上模型名称,例如items="{myModelName>/ViagemCollection}"
。
最后但同样重要的是,您应该考虑升级SAPUI5运行时。上一次发布的版本大约是1.26.x。您使用的版本(1.20.x)大约有一年的历史。
- 如何使用url加载程序在webpack中导入多个图像
- keyup事件处理程序更改焦点不适用于快速键入
- 用程序搜索JQuery数据表中的文本
- Javascript:selenium Web驱动程序isDisplayed()不工作
- Canvas Html5绘图应用程序,移动画布会导致重大问题
- Emberjs应用程序加载在除Index之外的所有路由上
- ExtJS 5用程序点击actioncolumn gridview
- 使用电话间隙在Android应用程序中显示SQL Lite的数据
- 如何从Java/scala调用js美化程序
- 在AngularJS应用程序中使用封装指令和路由的推荐方式是什么
- Windows8应用程序(html&Javascript):从图片库(除了文件选择器)显示图像的另一种方式
- angular 1.5应用程序中的导航栏
- YUI3 IO实用程序是否可以根据给定的内容类型标头值自动序列化数据
- 如何创建带有插槽的vue js组件预加载程序
- Webpack/Rect:遵循egghead.io教程,但出现错误:您可能需要一个合适的加载程序来处理此文件类型
- 在Windows 10中自动执行例行程序(主要与浏览器交互)
- 在Web应用程序中使用Highcharts javascript
- 递归使用 eval() 是检查程序执行的好方法吗?
- 如何刷新事件处理程序中的ODataModel
- SAPUI5:如何通过程序访问ODataModel数据