在Polymer dom-if中使用全局变量

问题描述 投票:1回答:2

我正在为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应该可以从其他文件中的其他模块访问。创建它的最佳方法是什么?

polymer global-variables dom-if
2个回答
0
投票

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

  1. 拥有一个可以容纳所有全局变量的组件,并在其使用的地方提供相同的数据实例。您可以使用link以及工作样本找到更好的解释
  2. 如果您有大量需要全局访问的数据,那么最好的选择是使用带有聚合物还原的商店。

0
投票

对此有一种特定的聚合物元素。

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

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

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


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

© www.soinside.com 2019 - 2024. All rights reserved.