Метод прослушивания внутри шаблона автоматической привязки? (Полимер 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". Как мне это сделать? Я предпочитаю помещать его в «пользовательский элемент», но тогда я не знаю, как привязать его к событию «при ответе» от 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
}

в случаях, когда вам нужно дождаться штамповки всех полимерных элементов на дом, вы ждете события «смена дома»

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