Я намагаюся перетворити чудовий віджет select2 jquery (https://github.com/ivaynberg/select2) в полімерному елементі для легкого використання. Мені вдалося отримати вибір ініціалізовано правильно, але я стикаюся з проблемами після ініціалізації. Зокрема, при натисканні клавіші select для її відкриття в сценарій select2 вводиться помилка під час розміщення спливаючого вікна. Ось репо з провальною реалізацією:
https://github.com/ivelander/x-select2
Хтось мав добрий успіх інтегруючи полімер із цим віджетом select2 або jquery взагалі? Будь-які пропозиції щодо того, як я можу змусити цей приклад працювати?
Відповіді:
0 для відповіді № 1Обгортання плагінів jQuery в полімерний елемент наразі не працює надійно через необхідність jQuery отримати доступ до всіх вузлів документа, що заходять у межі тіньової DOM. Повне пояснення тут.
0 для відповіді № 2
Я зіткнувся з тим же питанням. Ви можете створити для цього хак, змусивши шаблон у Light DOM:
Polymer "my-select",
ready: () ->
$(@$.el).select2({
placeholder: "Foo..."
data: []
})
this
# Override parseDeclaration to force the template into the Light DOM
parseDeclaration: (elementElement) ->
@lightFromTemplate(@fetchTemplate(elementElement))
Тепер select2 зможе знайти належне зміщення контейнера select2.
Звичайно, ви повинні бути обережними, тому що якщо у вашому шаблоні є щось, що належить до Shadow DOM (наприклад, таблиця стилів), воно буде тепер у Light DOM.