与聚合物中的全局变量绑定



我对聚合物相当陌生,只是刚刚研究了数据绑定的工作原理。我正在移植一个现有的 Dojo 应用程序,其中将有:

1) 每个 URL 的单个存储(保存数据)

2) 更新商店元素时来自服务器的消息

因此,如果用户在应用程序中的任何地方向存储中添加了项目(保存数据),则依赖于存储中数据的动态选择框将自动具有一个额外的项目。

我正在尝试在聚合物中复制这样的东西。

用例:想象一个这样的 URL:/app/categories 。通过使用HTTP GET查询它,您最终会得到所有可用类别的JSON。当应用程序运行时,服务器可能会通知/app/category 中的新元素。因此,应用程序中的所有选择将自动具有额外的项。

在 Polymer 中,我学习了如何将当前元素中的属性绑定到包含元素中的属性。我了解触发正确事件等情况。因此,我们的想法是创建一个选择,其中项目由dom-repeat生成,这将绑定到...一个不知何故的全局变量 (?)。

但。。。是否可以将包含元素的属性绑定到"全局"变量,而不是包含元素的属性?

或者,更广泛地说,是否有一种模式(甚至是已建立的模式)来确保当全局变量被更改时(由于彗星消息或其他什么),绑定到它的一堆元素将被通知并因此更改(在这种情况下,使用 dom-repeat 的"选择"来显示项目!

这是一个JSBin,展示了如何通过iron-ajax创建菜单 此时,JSBin缺少的是模拟服务器推送的数据更改,以及同时更新所有菜单的方法。

我直言,最理智和可维护的模式是单向数据流方法(类似于 Flux 或 Redux(稍微简单一点)。

有一个全局状态对象作为图形结构存在,数据沿着组件树向动(从根组件开始)。
每个组件都有明确定义的输入属性,并从父组件接收数据(使用数据绑定),并将部分数据传递给其子组件。当组件更改状态时,它会触发一个事件,该事件将组件树向上冒泡到根组件,然后根组件可以更新全局状态对象(再次沿着组件树向动),与后端通信等。

我还可以推荐2015年聚合物峰会上的这段视频,它解释了类似的方法(调解器模式)。

最新更新