Итак, у меня есть пользовательский элемент, и мне нужно обновить его стили на основе изменения его дочернего содержимого. Например:
<my-element>
<!-- When child content here changes I want to update styling --!>
</my-element>
Как бы я отслеживал изменения DOM в дочернем контенте в моем элементе? Например, допустим, что если дочерний контент содержал строку где-либо со словом «привет», то я бы изменил стиль пользовательского элемента:
<my-element>
<span>Hello in <b>advance</b>!!!</span>
</my-element>
Обычно я бы использовал здесь наблюдателя мутаций и сканировал дом, когда произошли изменения, не уверенный, как это сделать правильно с lit-element
Заранее спасибо!
UPDATE
Итак, я взломал решение, используя наблюдателя мутаций. Мысли? * * 1013
firstUpdated() {
var shadow = this.shadowRoot;
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
console.log(mutation);
});
});
// configuration of the observer:
var config = { attributes: true, childList: true, characterData: true, subtree: true }
// pass in the target node, as well as the observer options
observer.observe(shadow, config);
}