Polymer 1.0 中的持久会话变量

Persistent session variable in Polymer 1.0

我有两个没有直接连接的元素(没有主子关系)。我想在它们之间共享一些信息,因为双向数据绑定不是最优的。我想到了持久会话变量(就像 Meteor 中存在的那样),Polymer 1.0 中是否有类似的东西?如果没有,有人可以向我推荐一个可行的解决方案。

编辑:

我刚刚发现 iron-signals,但文档说明应该避免它,有人可以解释为什么应该避免它吗?如果有人写了一个如何通过示例使用它的示例,我也将不胜感激。

编辑:

我在 2015 年 Polymer 峰会上与 Polymer 团队讨论了这个问题。这是一个更大问题的一部分,即如何构建我的应用程序。他们在峰会上谈到了中介模式。我建议观看 talk from the summit and visiting the code in Github

我最近自己看了铁信号。它对于松散耦合的距离组件之间的通信很有用。它提供了 "event bus" 类型的功能。我相信您在 iron-signals 文档 ("Note: avoid using iron-signals whenever you can use a controller (parent element) to mediate communication instead.") 中看到的警告是为了防止在普通聚合物 属性 绑定会执行的简单情况下过度使用工作。在 iron-signals 文档中的注释上下文中,父元素 ("controller") 是通信子元素的绑定范围。

此外,iron-signals 与持久会话变量无关。那里有两个单独的问题。

对于使用 <iron-signals> 的一些编码示例,您可能需要查看此 Stack Overflow question and its answers

它并不像乍看起来那么复杂。 Study this documentation and this demo.

这是一个简单的两步过程:

  1. 像这样触发一个 iron-signal 事件:

    this.fire('iron-signal', {name: 'hello', data: 'kitty'});

  2. 侦听具有相同名称的 iron-signal 事件(在本例中为 hello)。 像这样:

    <iron-signals on-iron-signal-hello="doSomething"></iron-signals>

此外, 带有工作代码示例。只有他们提到 <iron-meta><iron-local-storage>.

我刚刚发现这个 video(我链接到解释概念的确切分钟和秒),它准确地解释了我想要的效果。 Mowzer 发布的答案之间的主要区别在于,您将整个应用程序包装在一个模板中,并通过观察者访问属性,这是一个更容易理解的概念。 我觉得视频很通俗易懂,这里就不多解释了。