Polymer 1.x: получить / вернуть значения свойств без связанных элементов

1

Вопрос для пользователей Polymer:

Как я могу получить значение свойства, если элементы не связаны с родительским или дочерним родителем? Насколько я понимаю, цепочка слушателей - это действительно плохая идея. Можно ли указать конкретный элемент для прослушивания события?

Я знаю, что это можно сделать методом JS:

document.addEventListener('event', handle('elem'));

Но мне нужен Полимер.

Спасибо.

  • 0
    Что возвращает ваша handle('elem') ?
Теги:
polymer

2 ответа

1

Plain Polymer использует шаблон медиатора, что означает, что родитель опосредует всех своих детей, и, таким образом, только родитель может получить доступ к свойствам детей с помощью привязок.

Двусторонние привязки реализуются с использованием событий, т.е. Вместо двусторонней привязки вы также можете выполнять:

<child-element property-changed="onPropertyChanged_"></child-element>

Однако, поскольку эти события не пузырятся, вы можете получить к нему доступ только в родительском компоненте.

Если вы хотите получить более глобальное государственное управление и поделиться определенным состоянием в своем приложении, вы должны взглянуть на Redux, потенциально в сочетании с полимерными связями Polymer-Redux. См. Кевин этот разговор с дополнительной информацией по этой теме.

1

Короче говоря, он разработан именно так.

Изолированный DOM: компонент DOM является самодостаточным (например, document.querySelector() не будет возвращать узлы в DOM компонента shadow).

Ссылка https://developers.google.com/web/fundamentals/web-components/shadowdom

Вы должны полагаться на привязку данных и события для связи между веб-компонентами, созданными на основе DOM. И, полимерные элементы являются такими веб-компонентами.

  • 0
    Поскольку @laurynas удалил querySelector из своего вопроса после моего ответа, я бы предположил, что проблема была в другом.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню