"[...] The 'ready' (or created) method cannot be used with code that depends
on the state of external elements, e.g. children or distributed elements or
parent. The element is not guaranteed to be in the dom when ready is
called. Instead, ready is the signal that the element's internal state is
ready for use, its shadowRoot, event listeners, property observers, and
bindings.
Instead you should use the 'attached' method for this type of thing. When
attached is called, the element is in the dom tree. Further, it's best to
go asynchronous when accessing external dom. This ensures any element
upgrades have been processed. This way you are independent of upgrade
ordering. [...]"
By sorvell: (Polymer dev team member)
"[...] The 'ready' (or created) method cannot be used with code that depends on the state of external elements, e.g. children or distributed elements or parent. The element is not guaranteed to be in the dom when ready is called. Instead, ready is the signal that the element's internal state is ready for use, its shadowRoot, event listeners, property observers, and bindings.
Instead you should use the 'attached' method for this type of thing. When attached is called, the element is in the dom tree. Further, it's best to go asynchronous when accessing external dom. This ensures any element upgrades have been processed. This way you are independent of upgrade ordering. [...]"
more info: https://github.com/Polymer/polymer/issues/414
This change is