title: Can't find element on iron ajax event methods
body: <p>For below given code <code>this.$.createButton</code> or <code>document.querySelector('createButton')</code> works inside the <code>ready</code> method. But same code fails inside <code>handleRequestSent</code> or <code>handleResponseReceived</code>. The error message I get is </p>
  
  <blockquote>
    <p>Uncaught TypeError: Cannot read property 'createButton' of undefined</p>
  </blockquote>
  
  <p>I tried to debug, it appears that inside <code>handleRequestSent</code> and <code>handleResponseReceived</code> the <code>this</code> actually pointing to iron-ajax, but not the element dom root.  Any suggestion is welcome. Thanks in advance.</p>
  
  <p><div class="snippet" data-lang="js" data-hide="false">
  <div class="snippet-code">
  <pre class="snippet-code-html lang-html prettyprint-override"><code>&lt;dom-module id="bortini-tv-create"&gt;
      &lt;template&gt;
          &lt;form&gt;
              &lt;paper-input label="Name" value="{{tv.name}}"&gt;&lt;/paper-input&gt;
              &lt;paper-input label="Logo" value="{{tv.logo}}"&gt;&lt;/paper-input&gt;
              &lt;paper-input label="Address" value="{{tv.address}}"&gt;&lt;/paper-input&gt;
              &lt;paper-input label="Web site" value="{{tv.webSite}}"&gt;&lt;/paper-input&gt;
              &lt;paper-input label="Registration number" value="{{tv.regNumber}}"&gt;&lt;/paper-input&gt;
              &lt;br/&gt;
              &lt;br/&gt;
              &lt;paper-button id="createButton" raised on-tap="handleTvCreate"&gt;
                  &lt;iron-icon icon="redeem"&gt;&lt;/iron-icon&gt;
                  Add
              &lt;/paper-button&gt;
              &lt;paper-button id="cancelButton" raised on-tap="handleCancelTvCreate"&gt;
                  &lt;iron-icon icon="cancel"&gt;&lt;/iron-icon&gt;
                  Cancel
              &lt;/paper-button&gt;
          &lt;/form&gt;
  
          &lt;iron-ajax
                  id="ironAjax"
                  url="/api/tv"
                  content-type="application/json"
                  handle-as="json"
                  method="POST"&gt;
          &lt;/iron-ajax&gt;
  
          &lt;paper-toast id="toast"
                       duration="3000"
                       text="TV {{tv.name}} has been created"&gt;
          &lt;/paper-toast&gt;
      &lt;/template&gt;
  &lt;/dom-module&gt;
  &lt;script&gt;
  
      function initModel() {
          return {"name": "", "logo": "", "address": "", "webSite": "", "regNumber": ""};
      }
  
  
      Polymer({
          is: "bortini-tv-create",
          properties: {
              tv: {
                  type: Object,
                  value: initModel(),
                  notify: true
              }
          },
          ready: function() {
              this.$.ironAjax.addEventListener('error', this.handleError);
              this.$.ironAjax.addEventListener('request', this.handleRequestSent);
              this.$.ironAjax.addEventListener('response', this.handleResponseReceived);
          },
          handleTvCreate: function (event) {
              var ironAjax=document.querySelector("#ironAjax");
              ironAjax.body = JSON.stringify(this.tv);
              ironAjax.generateRequest();
          },
          handleCancelTvCreate: function (event) {
              MoreRouting.navigateTo('tv-list');
          },
          handleError: function(event) {
              this.$.createButton.disabled=false;
              this.$.cancelButton.disabled=false;
  
              var request=event.detail.request;
              var error=event.detail.error;
              var toast=document.querySelector("#toast");
              toast.text="Error: "+error;
              toast.show();
          },
          handleRequestSent: function (request) {
              console.log("boooooo");
              this.$.createButton.disabled=true;
              this.$.cancelButton.disabled=true;
  
          },
          handleResponseReceived: function (response) {
              document.querySelector('createButton').disabled=false;
              document.querySelector('cancelButton').disabled=false;
  
              console.log("Received response: " + JSON.stringify(response.detail.response));
              document.querySelector('#toast').show();
              MoreRouting.navigateTo('tv-list');
          }
      });
  &lt;/script&gt;</code></pre>
  </div>
  </div>
  </p>