3

问题是:如何在数据视图中显示数据,如果实体更新,数据视图也会更新。

这是我命名的实体latestReading

在此处输入图像描述

这是我的页面LatestReading,显示最新读数。它包含三个数据视图。

在此处输入图像描述

这个页面没有被直接调用,因为它需要一个 object latestReading。因此,一个名为的微流showLatestReadingPage被执行,它获取或创建latestReading对象并将其传递给LatestReading页面并显示LatestReading页面。

这是微流。

在此处输入图像描述

getOrCreateLatestReading是一个微流,latestReading如果它可用,则返回我们一个对象,如果latestReading尚未创建,则创建一个新对象,然后返回它。

这是微流。

在此处输入图像描述

这些是LatestReading页面中三个数据视图中第一个的属性,如上图所示LatestReading。此数据视图的名称是TemperatureDataView

在此处输入图像描述

这些是TemperatureDataView数据视图内的文本小部件的属性。它的名字是temperatureText。它显示了温度的值TemperatureDataView

在此处输入图像描述

这是temperatureText文本小部件的标题:

在此处输入图像描述

问题是当另一个微流更新时latestReading,文本小部件的值没有更新。我需要通过再次单击LatestReading页面的导航链接来重新加载它。

我需要数据视图中的文本小部件来保持更新latestReading它何时更新我的​​其他微流的值

4

1 回答 1

2

问题是“客户端刷新”仅在微流与用户正在查看的页面(客户端)在相同的上下文中执行时才有效。例如,如果页面上有一个按钮触发刷新客户端的微流,那么它将更新小部件。但是,如果微流是由系统触发的(例如,预定事件),那么这些变化是在不同的上下文中。此外,如果另一个用户触发刷新,它只会刷新该用户的客户端。此外,如果一个用户通过多个浏览器登录(即有多个会话,这也意味着每个会话都有不同的用户上下文。

在这种情况下,最简单的解决方案可能是使用应用商店小部件,该小部件会定期触发数据视图中显示的对象的刷新,例如:https ://appstore.home.mendix.com/link/app/27/ . 只需使用不更改属性但刷新对象的更改操作创建纳流或微流。

于 2019-04-26T14:13:04.060 回答