繁体   English   中英

绑定到Polymer中的全局变量

[英]Binding to global variables in Polymer

我对Polymer相当陌生,只研究了数据绑定的工作原理。 我正在移植现有的Dojo应用程序,该应用程序将在以下位置进行:

1)每个URL都有一个商店(保存数据)

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

结果,如果用户在应用程序中的任何位置向存储库中添加了项目(保存数据),则依赖于存储库中数据的动态创建的选择框将自动具有额外的项目。

我正在尝试在Polymer中复制类似的内容。

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

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

但是...甚至可能将包含元素的属性绑定到“全局”变量,而不是包含元素的属性?

或者,更广泛地说,是否存在一种模式(甚至是既定模式)来确保在更改全局变量(由于彗星消息或其他原因)时,将通知并绑定到其上的一堆元素(在这种情况下,使用dom-repeat进行“选择”以显示项目!)

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

恕我直言,最明智和可维护的模式是一种单向数据流方法(类似于FluxRedux (有点简单)。

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

我也可以从Polymer 2015峰会上推荐此视频 ,该视频解释了类似的方法(调解人模式)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM