I have a set of custom polymer elements, that I would like to use within an angular 2 application.
It seems like there\'s a problem concerning the content tag of the
There are a few open issue about Angular2 combined with Polymer. For example Angular doesn't use Polymer.dom(el)...
for manipulating a Polymer elements children. This is probably what breaks your components.
A workaround is to enable full shadow DOM and polyfills. See https://www.polymer-project.org/1.0/docs/devguide/settings.html
An issue I haven't found a solution yet is passing <template>
s (like required for example for <iron-list>
. Angular handles templates on its own and doesn't pass it to the Polymer element.
There is a I tried it seems that's only to ignore ngNonBindable
directive. I haven't tried it yet on the <template ngNonBindable>
myself but it might work.[prop]="field"
/prop="{{field}}
bindings.
Another issue is with <style is="custom-style">
. They can only be added in the <head>
element or within Polymer elements, but not to Angular components.
See also Two-way binding in Angular 2 with NgModel and mutating bound property?
Check out https://www.npmjs.com/package/@vaadin/angular2-polymer, which should resolve most issues in integrating Polymer elements to Angular 2.
User guide: https://github.com/vaadin/vaadin-core-elements/blob/master/docs/angular2.adoc
Tutorial (draft): https://github.com/vaadin/angular2-polymer/blob/d4581e8fd82841eea84ef40e16e262a12ee4b082/docs/tutorial.adoc
Better shady DOM support is waiting to be merged from a separate branch (should be merged and released within two weeks): https://github.com/vaadin/angular2-polymer/tree/feature/polymer-dom-adapter
It would be great if you could try it out and see if it works for you!
Eventually, the documentation will be published at https://vaadin.com/docs/