2014-01-24 4 views
5

В настоящее время я создаю элементы управления с помощью Google Polymer. Мне было интересно, можно ли прослушивать события изменения свойств извне элемента. Обходной путь, который у меня есть, заключается в том, чтобы запустить явное событие, когда вызывается метод propertyChanged, к которому я слушаю от моего другого элемента.Google Polymer: Прослушивание изменений свойств извне элемента

// Property change in child element 

Polymer('some-input', { 
    valueChanged: function() { 
     this.fire('valueChanged', this.value) 
    } 
}); 

[...] 

// Listening in the parent element 
ready: function() { 
    this.$.someinput.addEventListener('valueChanged', function(evt) { 
     var value = evt.detail; 
     [...] 
    }); 
} 

Знаете ли вы, если я могу прослушать событие смены недвижимости напрямую?

Спасибо, Pedro

ответ

7

Если вы родительский элемент находится в <polymer-element>, легкий способ «общения» между элементами является использование привязки данных по их published properties:

<parent-element value="{{val}}"> 
    <some-input value="{{val}}"></some-input> 
</parent-element> 

Мы считайте это «Полимерным» способом делать что-то, потому что он очень декларативный и использует такие функции, как привязка данных.

Если родительский элемент не находится в элементе Polymer, вы можете использовать делегирование событий , как вы уже сказали. Я написал статью о различных подходах к обмену информацией через элементы, которые могут вас найти: Communication & Message Passing

+1

ссылки мертвы :( – leech

Смежные вопросы