Подтвердить что ты не робот

Событие Polymer и WebComponentsReady

В соответствии с Полимерными документами событие WebComponentsReady необходимо, потому что...

Определяет элементы синтаксического анализа полисов и обрабатывает их асинхронно. Если вы преждевременно извлечете элемент из DOM, прежде чем он сможет обновиться, вы будете работать с элементом HTMLUnknownElement. В этих ситуациях дождаться события WebComponentsReady перед взаимодействием с элементом

У меня есть страница HTML, которая импортирует один веб-компонент и регистрирует обработчик, который регистрирует инструкцию, когда загружаются все веб-компоненты:

<!DOCTYPE html>
<html>
    <head>
        <script src="bower_components/platform/platform.js"></script>
        <link rel="import" href="elements/my-element.html">
    </head>
    <body unresolved>
        <my-element></my-element>
        <script>
            window.addEventListener('WebComponentsReady', function(e) {
                console.log('components ready');
            });
        </script>
    </body>
</html>

Почему событие WebComponentsReady срабатывает перед событием "my-element" ready?. Мне нужно знать, когда я могу взаимодействовать с пользовательским элементом, например. изменить его свойства и вызвать его общедоступные методы.

4b9b3361

Ответ 1

В Polymer 1.0 вы можете просто слушать WebComponentsReady.

В Polymer 0.5, поскольку он делает больше асинхронно, добавляется дополнительное событие с именем polymer-ready, которое будет срабатывать при загрузке ваших элементов. Здесь jsbin, показывающий заказ.