从Rest API实体更新后刷新屏幕未显示最新数据?

时间:2017-06-30 21:08:27

标签: cuba-platform

重现的步骤 -

  1. 我使用CUBA REST API更新了实体数据。
  2. 我在浏览器中单击了刷新按钮,它确实刷新了,但实体查看器中的数据仍然显示旧的。所以我关闭了实体查看器并再次打开 - 它反映了新的变化。
  3. 我认为如果REST API更新了实体查看器,则刷新不起作用。 它是一个bug还是有任何解决方法?

2 个答案:

答案 0 :(得分:2)

如果您的意思是按F5刷新整个页面,则不会因以下原因重新加载您的数据:

  • CUBA通用UI基于Vaadin,这意味着它将页面上显示的所有组件和数据的状态存储在Web服务器内存中。

  • 当您点击F5时,您的浏览器只会将此状态从服务器加载到页面。

  • 为了将数据从中间件重新加载到表示层,您需要在Web服务器上刷新它,例如重新打开屏幕。

答案 1 :(得分:0)

快速解决方法是在UI中添加var cmpVersion = function(a, b) { let arrA = Array.from(a.split('.'), i => +i); let arrB = Array.from(b.split('.'), i => +i); for (let i = 0; i < (arrA.length >= arrB.length ? arrA.length : arrB.length); i++) { if (arrA[i] && !arrB[i] || arrA[i] > arrB[i]) return 'less than one'; else if (!arrA[i] && arrB[i] || arrA[i] < arrB[i]) return 'greater than one'; } return 0; } 。请检查以下屏幕截图以添加刷新按钮。我认为这符合目的。

  1. 创建通用用户界面时,单击显示高级属性。
  2. Advanced

    1. refresh button
    2. enter image description here

      1. 现在,您可以在网络用户界面中看到Show Advanced Properties > Table Actions > refresh按钮,这样用户就可以点击刷新按钮而不是加载页面。
      2. final result