在Polymer dom-if

时间:2019-04-10 14:45:03

标签: polymer global-variables dom-if

我正在为Polymer创建一个自定义模块。我需要创建一个在定义模板时可以访问的全局变量。像这样:

<template is="dom-if" if="[[_check(myGlobalVar.foo)]]">

还应该从模块内部直接访问全局变量(请参见_anotherFunction)。 JS文件如下所示:

Polymer({
    is: 'my-module',

    _check(f) {
        return f == 'foobar'
    },

    _anotherFunction() {
        console.log(myGlobalVar)
    }
})

此外,还可以从其他文件中的其他模块访问myGlobalVar。最好的创建方式是什么?

2 个答案:

答案 0 :(得分:0)

您可以通过两种方式实现这一目标。

  1. 具有一个组件,该组件可以保存所有全局变量,并在使用任何位置的情况下提供相同的数据实例。您可以使用link和工作示例

  2. 找到更好的解释。
  3. 如果您有许多需要全局访问的数据,那么最好的选择是将存储与polymer-redux一起使用。

答案 1 :(得分:0)

对此有一个特定的Polymer元素。

  

iron-meta是可用于共享信息的通用元素   在DOM树中。

https://www.webcomponents.org/element/@polymer/iron-meta

如果值已更改,元素将触发value-changed,因此您可能需要为其设置值。


但是,我们在公司中不使用它,而是将值存储在内存中,然后在设置值时发送事件。还为每个需要监听更新的元素添加一个监听器。