On 6 February 2014 05:59, Dominic Cooney <[email protected]> wrote:

I was about to post to this ML to ask a very similar question, so pardon me
for hijacking this thread:


> Shadow DOM isn't a lock-box, there's also projection with <content>. It
> might be an interesting exercise to say "what should my markup look like?"
> and then try to work from there.
>

I've just encountered a similar dilemma to Justin while building a
monitoring dashboard using Polymer.

Please let me know if any of what I'm trying to do is an anti-pattern or if
there is a better alternative.

The idea is to reuse custom elements through composition and a shared
interface:

I've got a <my-chart> custom element that renders the data found in the
<table> it contains as a visual chart:

<my-chart render="bar">
  <table>...</table>
</my-chart>

Now I'd like to be able to feed data to <my-chart> from various sources, as
per the <polymer-ajax> example Dominic mentioned, through composition:

<my-chart render="bar">
  <aws-cloudwatch metric="latency"></aws-cloudwatch>
</my-chart>

<my-chart render="bar">
  <other-monitoring present="throughput"></other-monitoring>
</my-chart>


The problem here is that by default, the <aws-cloudwatch> and
<other-monitoring> elements will load data and populate a <table> _in their
Shadow DOM_.

There seem to be two obvious solutions (not sure how technically doable
they are, I haven't tried yet):

1. Make <my-chart> look at the Shadow DOM of its children, rather than
their DOM.
2. Make <aws-cloudwatch> and <other-monitoring> somehow populate their DOM,
rather than their Shadow DOM.

Answering the "what should my markup look like?", it feels like 2. is most
reasonable (we want the tabular data in the DOM for clients to see,
right?). Is it right, or feasible? It doesn't feel like <content> would
help, though I might be mistaken.

Alternatively, is this a misuse of Web Components?


I'd love to hear what you guys think and what are the suggested patterns to
do this, as it feels like composition of Web Components could be hugely
valuable!

Thanks,

-- 
Sébastien Cevey
Software Developer

Please consider the environment before printing this email.
------------------------------------------------------------------
Visit theguardian.com   

On your mobile, download the Guardian iPhone app theguardian.com/iphone and our 
iPad edition theguardian.com/iPad   
Save up to 57% by subscribing to the Guardian and Observer - choose the papers 
you want and get full digital access.
Visit subscribe.theguardian.com

This e-mail and all attachments are confidential and may also
be privileged. If you are not the named recipient, please notify
the sender and delete the e-mail and all attachments immediately.
Do not disclose the contents to another person. You may not use
the information for any purpose, or store, or copy, it in any way.
 
Guardian News & Media Limited is not liable for any computer
viruses or other material transmitted with or as part of this
e-mail. You should employ virus checking software.
 
Guardian News & Media Limited
 
A member of Guardian Media Group plc
Registered Office
PO Box 68164
Kings Place
90 York Way
London
N1P 2AP
 
Registered in England Number 908396

--------------------------------------------------------------------------

Follow Polymer on Google+: plus.google.com/107187849809354688692
--- 
You received this message because you are subscribed to the Google Groups 
"Polymer" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/polymer-dev/CALft9sTipYWKZ0G%3D%3DWwqspGRbepHfmUm75MCP_vq%3Dz4%3Dq%3Dm5mA%40mail.gmail.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to