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の提案に基づいて編集します(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 に答える