Как пропустить Shadow DOM (и использовать Light DOM) вместо шаблонов Polymer

Иногда вам может понадобиться полностью пропустить Shadow DOM с помощью Polymer.


person Erik Nomitch    schedule 02.11.2014    source источник


Ответы (1)


Вы можете принудительно перенести шаблон вашего полимерного элемента в Light DOM, переопределив parseDeclaration в объявлении Polymer() JS/Coffeescript.

Пример кофескрипта:

Polymer "my-element",

  parseDeclaration: (elementElement) ->
    @lightFromTemplate(@fetchTemplate(elementElement))

Конечно, вы должны быть осторожны, потому что если у вас в шаблоне есть что-то, принадлежащее Shadow DOM (например, таблица стилей), теперь это будет в Light DOM.

Изменить: если есть лучший способ сделать это, пожалуйста, дайте мне знать.

person Erik Nomitch    schedule 02.11.2014
comment
Просто чтобы знать... Как это можно использовать? не могли бы вы привести пример? - person sesteva; 03.11.2014
comment
Конечно, я использовал это, чтобы протестировать внедрение Select2 в элемент Polymer. Нужно было получить смещение элемента Select2, но Shadow DOM всегда возвращал 0. - person Erik Nomitch; 06.11.2014