首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于Web的聚合物数据绑定

基于Web的聚合物数据绑定
EN

Stack Overflow用户
提问于 2018-06-12 11:14:19
回答 1查看 68关注 0票数 0

我想从服务器将一些数据绑定到命令上的变量(按下按钮)。在服务器上,我有一个函数将返回一个JSON对象(这已经过测试,如果我直接打开API链接,就会得到正确的JSON格式)。但是,不管我做什么,变量都是未定义的。我有一个按钮和一个表(px-data-table是框架的一部分,应该能够显示JSON格式的数据):

代码语言:javascript
复制
<button id="runPredictionButton">
    <i>Button text</i>
</button>
<px-data-table 
      table-data$="{{data}}"
</px-data-table>
<div class="output"></div>   

我正在处理按下的按钮,并按以下方式定义变量:

代码语言:javascript
复制
  <script>
    Polymer({
      is: 'custom-view',
      properties: {
        data: {
          type: Object,
          notify: true
        }
      },
    ready: function() {
      var self = this;
      this.$.runPredictionButton.addEventListener('click', function() {
          filerootdiv.querySelector('.output').innerHTML = 'Is here';    
          var xhr = new XMLHttpRequest();
          this.data = xhr.open("GET", "API/predict") //as mentioned, API/predict returns a valid JSON
          console.log("This data is:" + this.data);
          this.data = xhr1.send("API/predict","_self")
          console.log("This data is_:" + this.data);
      });
    }
  });      
  </script>

出于某种原因,在控制台上,this.data两次都以undefined的形式出现,我试图打印它。我遗漏了什么?如何将JSON从API调用传递给this.data变量?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-12 11:55:45

xhr.send()不返回你想要的东西。

你需要先学习XmlHttpRequest。这是文档。和一些简单的示例

简单地说,您需要在onreadystatechange变量上侦听xml。在那里,您将能够从服务器获得数据。

另外,你为什么要使用addEventListener。您可以简单地设置on-click

代码语言:javascript
复制
<button id="runPredictionButton" on-click="getDataFromServer">
    <i>Button text</i>
</button>

然后,您可以定义javascript函数,用户每次单击按钮时都会调用它。

代码语言:javascript
复制
getDataFromServer: function() {
  var xhr = new XMLHttpRequest();
  xhr.open("GET", "API/predict");
  xhr.send("API/predict","_self");
  xhr.onreadystatechange = function() {
   // 4 = data returned
   if(xhr.readyState == 4) {
     // 200 = OK
     if (this.xhttp.status == 200) {
       // get data
       this.data = xhr.responseText;
     }
   }
  }.bind(this);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50815812

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档