我正在为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。最好的创建方式是什么?
答案 0 :(得分:0)
您可以通过两种方式实现这一目标。
具有一个组件,该组件可以保存所有全局变量,并在使用任何位置的情况下提供相同的数据实例。您可以使用link和工作示例
如果您有许多需要全局访问的数据,那么最好的选择是将存储与polymer-redux一起使用。
答案 1 :(得分:0)
对此有一个特定的Polymer元素。
iron-meta是可用于共享信息的通用元素 在DOM树中。
https://www.webcomponents.org/element/@polymer/iron-meta
如果值已更改,元素将触发value-changed
,因此您可能需要为其设置值。
但是,我们在公司中不使用它,而是将值存储在内存中,然后在设置值时发送事件。还为每个需要监听更新的元素添加一个监听器。