У меня есть полимер-элемент вроде этого:Как создать динамически полимерный элемент простой тег
<polymer-element name="x-block" attributes="data">
<template>
<div class="block-wrapper">
<div class="plus-button"on-click="{{showMdl}}">+</div>
<div hidden?="{{!showModal}}" id="modal">
Modal
</div>
<content select="header"></content>
</div>
</template>
/*Polymer */
<script>
Polymer({
ready: function(){
this.showModal = false;
},
showMdl: function(e,detail,sender){
this.showModal = true;
this.$.modal.style.top = e.layerY+'px';
this.$.modal.style.left = e.layerX+'px';
var newElement = document.createElement('div')
newElement.innerHTML = 'dynamicllyElement';
newElement.setAttribute('on-click','{{clickOnDynamicllyElement}}');
this.$.modal.appendChild(newElement);
},
clickOnDynamicllyElement:function(){
console.log('1111')
}
});
</script>
</polymer-element>
clickOnDynamicllyElement
не работает.
Осторожно: мой ответ, вероятно, переполнен здесь. Лучше просто использовать 'newElement.addEventListener ('click', this.clickOnDynamicllyElement.bind (this));' Как рассказывает команда Scott in the Polymer [здесь] (https://groups.google.com/forum/#! msg/polymer-dev/I5t73SGLLNc/UlYvEa508pkJ) injectBoundHTML следует использовать только тогда, когда вам действительно нужно связывать динамический HTML-код, а не просто слушать событие. – sfeast