platosha / angular-polymer

Angular 2 support for Polymer elements
https://www.npmjs.com/package/angular-polymer
Apache License 2.0
220 stars 44 forks source link
angular2-polymer polymer-element

CircleCI Version

Angular-Polymer

angular-polymer is a directive factory that aims at bridging the gaps between using Polymer based Web Components in Angular applications.

Note: Currently Angular-Polymer only works with Angular 2.x, or Angular-CLI 1.0.0-rc.2 and lower. Work is being done to upgrade the library to work the latest Angular & CLI. Want to help Contribute?

In case you are using Angular 4+ and Polymer 2+ you might want to check out https://github.com/hotforfeature/origami


import { NgModule, CUSTOM_ELEMENTS_SCHEMA, Component } from '@angular/core';
import { PolymerModule, PolymerElement } from '@vaadin/angular2-polymer';

@NgModule({
  imports: [ PolymerModule ],
  declarations: [
    AppComponent,
    PolymerElement('paper-input'),
    PolymerElement('vaadin-combo-box')
  ],
  bootstrap: [ AppComponent ],
  schemas: [ CUSTOM_ELEMENTS_SCHEMA ]
})
export class AppModule { }

@Component({
  selector: 'app-component',
  template: `
    <paper-input [(value)]="myValue"></paper-input>
    <vaadin-combo-box [(value)]="myValue" [items]="myItems"></vaadin-combo-box>
  `
})
class AppComponent {
  myValue = 'A';
  myItems = ['A', 'B', 'C'];
}

Getting started

See the overview for a quick start.

See the tutorial for complete instructions on how to use angular-polymer and how to build a working application with Angular data binding and routes.

If you are using Webpack in your project, see the specific document on how to build angular-polymer apps with webpack.

Demo app

The Expense Manager demo is an example of a real world application built using Angular and Polymer web components.

Where to get Polymer web components

For high quality Polymer web components, see the Webcomponents Element Catalog and Vaadin Elements.

Development

Familiarize yourself with the code and try to follow the same syntax conventions to make it easier for us to accept your pull requests.

Discuss / exchange ideas and ask questions here: https://polymer.slack.com/messages/polymer-angular/

Getting the Code

  1. Clone the angular-polymer project:

    $ git clone https://github.com/platosha/angular-polymer.git
    $ cd angular-polymer
  2. Install dependencies. We assume that you have already installed npm in your system.

    $ npm install

Running Tests

For running the tests you need Bower installed.

Then, you can download all bower dependencies needed by the Tests.

  $ bower install

Finally, you can run the tests by typing:

  $ npm test

Optionally, you can watch for the source changes and keep the tests running automatically:

  $ npm run test:w

License

Apache License 2.0