2016-04-06 65 views
2
document.getElementById('test').addEventListener('options-changed', function() { 
     document.getElementById('getContent').generateRequest(); 
    }); 

上述示例非常好。但只要我嘗試在自定義元素中使用generateRequest();,就沒有任何反應。沒有錯誤。手動觸發聚合物鐵 - 阿賈克斯請求

Polymer({ 
     is: 'vplan-table', 

     properties: { 
      options: { 
       reflectToAttribute: true, 
       notify: true, 
       observer: '_optionsChanged' 
      } 
     }, 
     _optionsChanged: function() { 
      //generateRequest not working! 
      document.querySelector('#getContent').generateRequest(); 
      console.log('options changed'); 
     } 
    }); 

謝謝你的時間!

+1

您是否嘗試過使用'this。$。getContent.generateRequest()'而不是'document.querySelector('#getContent')。generateRequest()'? – Alan

+0

這工作正常。非常感謝!但我的工作也是。我只是忘了從主頁面刪除舊的ajax代碼。請求有效,但數據綁定沒有。所以這是我自己愚蠢的錯誤。 –

+1

我建議你使用我提到的代碼,因爲如果在Polymer元素的代碼中直接在'document'上使用'querySelector',它可能無法按預期工作,如果在同一時間使用同一元素的多個實例 – Alan

回答

1

Alan's solution works!使用this.$.getContent.generateRequest()而不是document.querySelector('#getContent').generateRequest()。非常感謝Alan