1

所以我所描绘的是我拥有的一个参数数组,其中包含一个 id 列表,我们称之为 Array1。这些 id 将用作对同一 url 的 ajax 调用的参数。当它进行调用时,我想将 ajax 调用中的一些信息推送到一个公共数组(Array2),然后转到 Array1 中的下一个 id。这可以用 Polymer 实现吗?如果是这样,我从哪里开始?

代码:

        <iron-ajax id="ajax"
               auto="false"
                url='http://url.com/details?Id='
                handle-as="json"
                on-response="handleResponse"></iron-ajax>



<script>
    var playerData = [];
    Polymer({
        is: 'my-team',
        properties: {
        },
        attached: function () {
            for (var i = 0; i < array.length; i++) {
                this.$.ajax.url = 'http://url.com/details?Id=' + currentTeam[i];
                console.log(array[i]);
            }
        },
        handleResponse: function (r) {
            // do something;
            playerData.push(r.detail.response);
        }
    });
</script>
4

1 回答 1

1

如果我理解正确,我认为这会奏效。这可能不是最有效的方法,但可以完成工作。

<template is="dom-repeat" items="{{array1}}" as="id">
  <iron-ajax auto
             url='http://website.com/{{id}}'
             handle-as="json"
             on-response="handleResponse">
   </iron-ajax>
</template>

添加函数handleReponse

 handleResponse: function(r) {
      var response = r.detail.response;
      // do something;
    },

根据 jdepypere 的建议进行编辑(No Dom-Repeat):

  <iron-ajax id="ajax" url='http://website.com/'
             handle-as="json"
             on-response="handleResponse">
   </iron-ajax>

attached: function() {
    for (var i = 0; i < this.array1.length; i++) {
       this.$.ajax = 'http://website.com/' + this.array1[i];
    }
},
handleResponse: function(r) {
          var response = r.detail.response;
          // do something;
},

Edit2 添加了 GenerateRequest 方法(现在工作)

  <iron-ajax id="ajax" url='http://website.com/'
                 handle-as="json"
                 on-response="handleResponse">
       </iron-ajax>

 properties: {
          array1: {
            value: ['123', '123555', '235']
          }
        },
        attached: function() {
          console.log('attached');
          for (var i = 0; i < this.array1.length; i++) {
            console.log(i);
            this.$.aj.url = 'http://website.com/' + this.array1[i];
            this.$.aj.generateRequest();
          }
        },
        handleResponse: function(r) {
          var response = r.detail.response;
          console.log('handle');
          // do something;
        }, 
于 2016-01-09T00:33:00.723 回答