2016-09-22 7 views
0

iron-ajaxでのiron-scroll-thresholdの方法/例がありますか?Iron-Ajaxでのポリマーのスクロール・スレッショルド

基本的には、iron-ajaxオーバータイムスクロールがしきい値に達すると、コンテンツを読み込むためにiron-scroll-thresholdを使用します。

しかし、すべての例では、JavaScriptを使用してAJAX経由でさらに多くのコンテンツを読み込むことができます。アイアン・アヤックスを使ってすべてを行う方法があれば、コードをもっときれいに保つことができます。

答えて

0

完全な例については、JSBinを参照してください。要するに

、あなたはS generateRequest()方法iron-scroll-treshold「あなたはiron-ajax呼び出すのon-lower-thresholdon-upper-thresholdイベントを、」処理する必要があります。また、iron-ajaxon-responseイベントで新しいアイテムを処理する必要があります。

コード:

<dom-module id="test-app"> 
    <template> 

    <iron-ajax id="ajax" 
     url="https://randomuser.me/api/" 
     handle-as="json" 
     params='{"results": 20}' 
     on-response="categoriesLoaded"> 
    </iron-ajax> 

    <iron-scroll-threshold on-lower-threshold="loadMoreData" id="threshold"> 
     <iron-list id="list" items="[[categoriesJobs]]" as="person" scroll-target="threshold"> 
      <template> 
      <!-- item template --> 
      </template> 
     </iron-list> 
    </iron-scroll-threshold> 

    </template> 
    <script> 
    Polymer({ 

     is: 'test-app', 

     attached: function() { 
     this.categoriesJobs = []; 
     }, 

     loadMoreData: function() { 
     console.log('load more data'); 
     this.$.ajax.generateRequest(); 
     }, 

     categoriesLoaded: function (e) { 
     var self = this; 
     var people = e.detail.response.results; 
     people.forEach(function(element) { 
      self.push('categoriesJobs', element); 
     }); 
     this.$.threshold.clearTriggers(); 
     } 

    }); 
    </script> 
</dom-module> 

NOTE

iron-listiron-scroll-thresholdに関連した質問にanswer私の前の1に基づく例。

+0

最初のloadMoreDataによって理由があるのは、3つの要素しかレンダリングされませんか? 後続のloadMoreDataは、さらに多くの要素をレンダリングします。 –

+0

バグがありますが...私はそれを修正しようとしています。私はそれが完了したらあなたに通知します。 – Hunex

+0

@AtipAsvanundこれは回避策に過ぎず、JSBinをもう一度チェックアウトして、 'categoriesLoaded'関数を編集しました。最初の20項目を読み込むときに、 'iron-list'の' notifyResize() '関数を呼び出します。 – Hunex

関連する問題