我想每60秒刷新一次列表
我的代码:
window.refreshProductsTimer = window.setInterval(function(){
var oModel = that.getView().getModel("Products");
oModel.refresh(true);
var oView = that.getView();
oView.byId("productsList").setBindingContext("Products");
}, 30000);
Interval有效但我的列表项不会刷新。任何想法如何刷新我的观点?
我的列表中有一个计时器,如:
2day 15h 13m
它由格式化程序函数计算:
<List id="productsList"
items="{ path: 'Products>/ProductDocumentSet' }">
<items>
<ObjectListItem title="{Products>Dono}" type="Active" press="onListItemPressed"
icon="sap-icon://{path:'Products>AAucform',formatter: '.formatter.getIcon'}"
>
<firstStatus>
<ObjectStatus
text="{parts: [{path: 'Products>AAucendDate' },{path: 'Products>AAucendTime' }],
formatter: '.formatter.getCountdown'}"
state="{parts: [{path: 'Products>AAucendDate' },{path: 'Products>AAucendTime' }],
formatter: '.formatter.getCountdownStatus'}" />
</firstStatus>
<attributes>
<ObjectAttribute text="{parts: [{path: 'Products>ADldatesDate' },{path: 'Products>ADldatesTime' }],
formatter: '.formatter.getDateTimeShort'}" />
<ObjectAttribute text="{i18n>GlobalType}: {Products>AAucformDesc}" />
</attributes>
</ObjectListItem>
</items>
</List>
但计时器不会改变。
答案 0 :(得分:0)
获取列表的ListBinding,然后调用refresh:
var oList = oView.byId("productsList");
oList.getBinding("items").refresh(true);
以下是一个使用sap.m.Table并每5秒加载一次数据的工作示例:https://jsbin.com/wujovujegi/edit?html,output
这是一个列表:https://jsbin.com/vadahiyufo/edit?html,output
时间戳永远不会改变。这是你的问题吗?请注意,代理会在短时间后阻止请求,因为&#34;请求太多&#34; (你可以在网络流量中看到这一点。)