1

我正在为 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。创建它的最佳方法是什么?

4

2 回答 2

0

为此,有一个特定的 Polymer 元素。

iron-meta 是一个通用元素,可用于跨 DOM 树共享信息。

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

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


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

于 2019-04-14T16:26:32.527 回答
0

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

  1. 拥有一个可以保存所有全局变量的组件,并在使用时提供相同的数据实例。您可以使用链接和工作示例找到更好的解释

  2. 如果您有大量需要在全球范围内访问的数据,那么最好的选择是将 store 与 polymer-redux 一起使用。

于 2019-04-11T06:41:42.780 回答