Appropriate use of metadata in polymer application (i.e. core-meta element)

依然范特西╮ 提交于 2019-12-11 10:14:50

问题


I'm confused as to the proper use of core-meta in polymer. I tried looking at Topeka's metadata.html but it seems to cloud the issue for me further, with its extensive usage of x-meta tags seemingly related specifically to polymer designer tool etc. (I'm not using polymer designer)

Basically, I'm simply looking to create a config-file of sorts for my polymer application. For instance, I'd like to set the application's API data source URL (or at least the base URL) in one place and have any of the various elements reference it as required. Would that approach be considered best practice in polymer applications? In other words, should one use a separate metadata.html containing core-meta tags to accomplish the aforementioned goal for an application? If so, I'd like to see a brief example if possible. Thanks!


回答1:


core-meta is a generic element you can use for sharing information across the DOM tree. It uses monostate pattern such that any instance of core-meta has access to the shared information. You can use core-meta to share whatever you want (or create an extension [like x-meta] for enhancements).

The core-meta instances containing your actual data can be loaded in an import, or constructed in any way you see fit. The only requirement is that you create them before you try to access them.

Examples:

If I create an instance like this:

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

Note that keyUrl="foo/bar"is the metadata I've defined. I could define more attributes or use child nodes to define additional metadata.

Now I can access that element (and it's metadata) from any core-meta instance via the myId method, e.g.

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

Pure imperative form would be like:

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

Or, in a Polymer element, you can include a meta in your template:

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

You could sugar the byId('info').getAttribute('keyUrl') expression any number of ways to make access more convenient depending on your use case.

Live code: http://jsbin.com/vipoyi/1/edit



来源:https://stackoverflow.com/questions/25774548/appropriate-use-of-metadata-in-polymer-application-i-e-core-meta-element

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!