在聚合物应用中适当使用元数据(即核心元元素)

时间:2014-09-10 20:30:22

标签: polymer core-elements

我对在聚合物中正确使用core-meta感到困惑。我试着看看Topeka的metadata.html,但它似乎为我进一步解决了这个问题,因为它广泛使用的x-meta标签似乎与聚合物设计师工具等有关(我没有使用聚合物设计师)

基本上,我只是想为我的聚合物应用程序创建各种配置文件。例如,我想在一个地方设置应用程序的API数据源URL(或至少是基本URL),并让各种元素根据需要引用它。这种方法会被认为是聚合物应用的最佳实践吗?换句话说,是否应该使用包含core-meta标记的单独metadata.html来实现应用程序的上述目标?如果是这样,我想尽可能看一个简短的例子。谢谢!

1 个答案:

答案 0 :(得分:3)

core-meta是一个通用元素,可用于跨DOM树共享信息。它使用monostate pattern,以便core-meta的任何实例都可以访问共享信息。您可以使用core-meta分享您想要的任何内容(或创建扩展名[例如x-meta]以进行增强)。

包含实际数据的core-meta个实例可以在导入中加载,也可以以您认为合适的任何方式构建。唯一的要求是在尝试访问它们之前创建它们。

示例:

如果我创建这样的实例:

<core-meta id="info" keyUrl="foo/bar"></core-meta>

请注意keyUrl="foo/bar"是我定义的元数据。我可以定义更多属性或使用子节点来定义其他元数据。

现在,我可以通过myId方法从任何核心元实例访问该元素(及其元数据),例如

meta.byId('info').getAttribute('keyUrl')

纯粹的命令式形式如下:

document.createElement('core-meta').byId('info').getAttribute('keyUrl');

或者,在Polymer元素中,您可以在模板中包含元数据:

<core-meta id="meta"></core-meta>
...
this.$.meta.byId('info').getAttribute('keyUrl');

根据您的使用情况,您可以通过多种方式为byId('info').getAttribute('keyUrl')表达式添加访问权限。

直播代码:http://jsbin.com/vipoyi/1/edit