如何通过javascript访问核心ajax响应数据?

如何通过javascript访问核心ajax响应数据?,javascript,polymer,Javascript,Polymer,例如,如果在index.html文件中的自动绑定模板中有以下代码: 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>

例如,如果在index.html文件中的自动绑定模板中有以下代码:

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>

通常,我们对核心ajax使用数据绑定,但是如果需要使用JS,您可以从
core ajax
触发的
core response
事件中获取响应,或者查看
core ajax
标记本身的
response
属性

编辑:显示更好的方法

因为最初的海报专门询问如何使用JavaScript获得响应,所以我给出了完整的JS方法。您可以使用绑定对其进行大量清理


{{data.date}}:{{data.time}
addEventListener('template-bound',函数(e){
//用回应做些别的事情
e、 target.ajaxHandler=函数(事件){
日志(event.target.response);
}
});

这是在聚合元素中还是仅在主html文件中?您打算如何处理响应?在html或javascript中使用它?上面的代码位于自动绑定模板内的主html文件中。我计划将数据与javascript/jquery.uncaughtTypeError一起使用:无法读取null的属性'addEventListener',请尝试通过id var ajax=document.querySelector(“#ds”)获取核心ajax;ajax仍然是空的:(你从JSBin示例中得到错误了吗?它在Chrome中对我来说运行良好。你在测试哪个浏览器?在JSBin中运行良好。我在使用Chrome。我用更多的上下文更新了我的原始问题,以防我在其他地方做错了什么。
(function(document) {
  'use strict';

    document.addEventListener('polymer-ready', function() {
        var responseData = ????
    });
})(wrap(document));
<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>
<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>
<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>