There is some confusion around what the difference between Google Polymer and AngularJS is. Both being Google supported initiatives, lets clear up the misconceptions and explain the differences.
Essentially Google Polymer is for creating Web Components. Self contained modules written in HTML and used similarly to AngularJS directives using the type of “E” for element.
Web Components are a W3C standard, although not finalised or fully implemented in all browsers, Polymer is a set of polyfills for implementing cross-browser Web Components.
Essentially a Web Component is a self contained element that can have its own HTML, JS and CSS separate from the DOM itself. For example, HTML5 elements like
<audio> are Web Components. They contain many HTML elements inside of them and if you inspect the Shadow Dom inside of a browser like Chrome, you can see these simple elements are not so simple.
The difference between an AngularJS directive and Google Polymer is the fact your custom elements using Angular directives do not support their own encapsulated CSS or JS, this needs to be handled within the directive declaration itself.
Having said that, you can almost get the same functionality of a Web Component using an Angular directive, but minus the ability to have its own encapsulated assets independent of the page itself.
While Polymer and AngularJS are two different beasts, eventually we will see Polymer integrated into Angular, perhaps version 2.0 as major API changes in Angular bring forth better modern browser support.
Web Components are a W3C standard, Angular is not. Through the use of polyfills and other syntactic sugar, Polymer is an intermediate step on the road to browser support for Web Components. The best browser out there that supports the current spec is Chrome, especially version 36 onwards. Although Firefox is slowly implementing support for Web Components, it will take time.
So while you can achieve the appearance of a web component with Angular directives, if encapsulation matters to you, Polymer might be a better choice for your needs.