Метод на слушател в шаблон за автоматично обвързване? (Полимер 1.0)

<template is="dom-bind">
    <custom-element></custom-element>
    <iron-ajax auto url="data.json" handle-as="json" last-response="{{data}}" on-response="receivedResponse"></iron-ajax>
</template>

В примера по-горе „custom-element“ трябва да знае кога iron-ajax е получил отговор. Проблемът е, че не знам къде да поставя метода "receivedResponse". Как да направя това? Предпочитам да го поставя вътре в "custom-element", но тогава не знам как да го свържа към събитието "on-response" на iron-ajax.

Бих могъл да свържа "{{data}}" със свойство на "custom-element" и да имам наблюдател за това свойство, но това ми се струва като хак и бих искал да открия правилния начин да направя това.


person Nikolay Dyankov    schedule 03.10.2015    source източник


Отговори (2)


задайте идентификатор на шаблона за автоматично обвързване за лесен достъп

<tempalte id="app" is="dom-bind">

След това стартирайте шаблона в Javascript

var app = document.querySelector('#app');

и създайте функцията.

app.receivedResponse = function () {
  // process response
}

в случаите, когато трябва да изчакате всички полимерни елементи да бъдат щамповани към dom, изчакайте събитието "dom-change"

app.addEventListener('dom-change', function () {
  // dom is ready to work with
});

Надявам се това да помогне...

person jimi dough10    schedule 03.10.2015
comment
Благодаря, това ми трябваше! Така че, ако свържете функция към свойство в шаблон, тя ще се опита да извика функцията в шаблона. Например, ако направите това в шаблон на елемент, той ще извика функцията на елемента. Има смисъл сега! - person Nikolay Dyankov; 03.10.2015

person    schedule
comment
Противно гласуване, защото това е точно това, което не търсех. Моля, вижте последното изречение на въпроса ми. Благодаря все пак за отговора! - person Nikolay Dyankov; 03.10.2015