2014-09-25 41 views
1

舉例來說,如果我有我的index.html文件裏面自動綁定模板下面的代碼:如何通過javascript訪問core-ajax響應數據?

的index.html

<template is="auto-binding"> 
    <core-ajax id="ds" auto url="url/to/data.json" response="{{data}}"></core-ajax> 
    <my-items items="{{data}}"></my-items> 
</template> 

app.js

(function(document) { 
    'use strict'; 

    document.addEventListener('polymer-ready', function() { 
     var responseData = ???? 
    }); 
})(wrap(document)); 
+0

這是在一個聚合物元素或只是在主html文件?你打算如何處理這個響應在html或javascript中使用它? – 2014-09-25 14:11:11

+0

上面的代碼位於自動綁定模板中的主HTML文件中。我打算使用JavaScript/jQuery的數據。 – 2014-09-25 14:12:19

回答

2

通常情況下,我們使用數據綁定與核心ajax,但如果你需要得到它與J​​S你可以得到的答覆出core-response事件core-ajax發生火災,或者您可以查看core-ajax標記本身的response屬性。 jsbin example

<core-ajax auto url="http://date.jsontest.com"></core-ajax> 

<script> 
    document.addEventListener('polymer-ready', function() { 
    var ajax = document.querySelector('core-ajax'); 
    ajax.addEventListener('core-response', function(e) { 
     console.log(e.detail.response); 
     // or 
     console.log(e.target.response); 
     // or 
     console.log(ajax.response); 
    }); 
    }); 
</script> 

編輯:OP希望得到在汽車內結合核心的Ajax元素模板

你應該聽由auto-binding模板觸發的template-bound事件時戳其內容的頁。那麼你可以querySelectorcore-ajaxjsbin example

<template is="auto-binding"> 
    <core-ajax auto url="http://date.jsontest.com"></core-ajax> 
</template> 

<script> 
    var tmpl = document.querySelector('template'); 
    tmpl.addEventListener('template-bound', function() { 
    var ajax = document.querySelector('core-ajax'); 
    ajax.addEventListener('core-response', function(e) { 
     console.log(e.detail.response); 
     // or 
     console.log(e.target.response); 
     // or 
     console.log(ajax.response); 
    }); 
    }); 
</script> 

編輯:爲了展示一個更好的辦法

由於原來的海報是專門詢問有關獲取使用JavaScript的反應,我給了JS完全辦法。你可以使用綁定來清理它。 jsbin example

<template is="auto-binding"> 
    <core-ajax auto 
      response="{{data}}" 
      on-core-response="{{ajaxHandler}}" 
      url="http://date.jsontest.com" 
      handleAs="json"></core-ajax> 
    <h1>{{data.date}}: {{data.time}}</h1> 
</template> 

<script> 
    addEventListener('template-bound', function(e) { 
    // do something else with response 
    e.target.ajaxHandler = function(event) { 
     console.log(event.target.response); 
    } 
    }); 
</script> 
+1

Uncaught TypeError:無法讀取null的屬性'addEventListener' – 2014-09-25 14:19:38

+0

嘗試通過id獲取core-ajax var ajax = document.querySelector(「#ds」); – 2014-09-25 14:21:23

+0

ajax仍爲空:( – 2014-09-25 14:22:54