简体   繁体   English

聚合物- <iron-ajax> 数据绑定

[英]Polymer - <iron-ajax> data binding

I have created a polymer element and inside the element I am fetching a small little .json file that I will need to use for various parameters. 我创建了一个聚合物元素,并在该元素内部获取了一个小的.json文件,该文件需要用于各种参数。

My JSON file looks like this. 我的JSON文件如下所示。

 {
  "server_name" : "XMS Development Site",
  "server_url" : "test0",
  "xms_version" : "3.0.0 BETA",
  "rest": {
     "os_url" : "test1",
     "mbo_url": "test2",
     "login_url": "test3",
     "logout_url": "test4",
  }
}

I am unable to access the values in this JSON object from my iron-ajax request. 我无法通过iron-ajax请求访问此JSON对象中的值。 The {{response.xms_version}} binding just appears blank. {{response.xms_version}}绑定只是空白。 The on-response function just displays null. 响应功能仅显示为空。 Looking in chrome's dev tools, the JSON file is retrieved and the data is all there. 在chrome的dev工具中查看,可以检索JSON文件,并且数据就在那里。 It seems that for some reason I am just unable to bind to it. 似乎由于某种原因我无法绑定它。 I am not trying to use the dom-repeat method as I just need to be able to bind to these data points. 我不尝试使用dom-repeat方法,因为我只需要能够绑定到这些数据点。

My element looks like this: 我的元素看起来像这样:

<link rel="import" href="../../bower_components/polymer/polymer.html">
<link rel="import" href="../../bower_components/paper-input/paper-input.html">
<link rel="import" href="../../bower_components/paper-button/paper-button.html">
<link rel="import" href="../../bower_components/iron-ajax/iron-ajax.html">

<dom-module id="xms-login">


  <template>
    <style>
      :host {
        display: block;
      }
      .login-form-button{
        padding: 16px;
        text-align: center;
      }
      .login-form{

      }
      .login-field{
        padding-top: 16px;
        padding-left: 16px;
        padding-right: 16px;

      }
      .login-button{
        background-color: var(--default-primary-color);
        color: var(--text-primary-color);
      }
      .xms-logo-svg{
        text-align: center;
        padding-top: 64px;

      }
      .version-number-text{
        text-align: center;
        postion: absolute;
        bottom: 0;
      }

    </style>

    <iron-ajax id="testAjax" auto
      url="../../xms.json"
      handle-as="json"
      method="GET"
      on-response="handleResponse"
      last-response="{{response}}"></iron-ajax>

    <xms-auth id="xmsAuthHandler" authheader="{{computeEncodedLogin(username, password)}}" provider="rest"></xms-auth>

    <div class="login-form">
      <div class="login-form-fields">
        <paper-input class="login-field" type="text" label="Username" value="{{username}}"></paper-input>
        <paper-input class="login-field" type="password" label="Password" value="{{password}}"></paper-input>
      </div>
      <div class="login-form-button">
        <paper-button raised class="login-button" onclick="xmsAuthHandler.login()">Login</paper-button>
      </div>
      <div class="version-number-text">{{response.xms_version}}</div>
    </div>




  </template>
  <script>
  (function() {
    'use strict';

    Polymer({
      is: 'xms-login',

      properties: {

        user: {
          type: String,
          notify: true
        },

        username: {
          type: String,
          notify: true
        },

        password: {
          type: String,
          notify: true
        },
      },

               computeEncodedLogin: function( username, password ){
        return btoa(username + ':' + password);
      },


      handleResponse: function(request){
        var myResponse = request.detail.response;
        console.log(myResponse);
      }
    });
  })();
  </script>
</dom-module>

问题已解决,是由不正确的JSON数据引起的。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM