В Polymer, возможно ли использовать массив параметров для выполнения вызова iron-ajax?

Так что я представляю массив параметров, которые у меня есть, которые содержат список идентификаторов, давайте назовем это Array1. Эти идентификаторы будут использоваться в качестве параметров для вызова ajax по тому же URL-адресу. Когда он делает вызов, я хочу вытолкнуть некоторую информацию из вызова ajax в общий массив (Array2), а затем перейти к следующему идентификатору в Array1. Возможно ли это реализовать с помощью 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>

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;
        }, 
Другие вопросы по тегам