我正在为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应该可以从其他文件中的其他模块访问。创建它的最佳方法是什么?
你可以通过两种方式实现这一目标。
对此有一种特定的聚合物元素。
iron-meta是一个通用元素,可用于跨DOM树共享信息。
https://www.webcomponents.org/element/@polymer/iron-meta
如果值已更改,则元素将触发value-changed
,因此您可能需要为其设置值。
但是,我们不在公司中使用它,而只是将值存储在内存中,然后在设置值时发送事件。还为需要侦听更新的每个元素添加侦听器。