2017-12-04 6 views
0

AngularJSのDataListを使用して(API呼び出しを介して)約2000の値をレンダリングしようとしています。問題は、これらの値がページを非常に遅くすることです。一度に10個のアイテムしかレンダリングできない方法はありますか?そのデータリストから、入力すると一致する結果が10個まで表示される可能性があります。 https://codepen.io/anon/pen/KyEXMrデータリストの値を制限する - AngularJS

<main ng-app="myApp"> 
    <section ng-controller="dataListController"> 
    <form name="some"> 
     <label> Search 
    <input type="text" list="dataList"> 
     </label> 
     <datalist id="dataList"> 
     <option ng-repeat="v in names" value="{{v.eyeColor}}">Age {{v.age}}</option> 
     </datalist> 
    </form> 
    </section> 
</main> 
+2

Angular.jsのレシピは次のとおりです。http://fdietz.github.io/recipes-with-angular-js/common-user-interface-patterns/paginating-through-client-side- data.html –

+0

これは機能します。しかし、私はAPIコールを介して値のリスト全体を取得しているので、 "ピンク"で入力しようとすると、limitToフィルタを削除したときにエラーが発生しません。 – a2441918

+0

おそらく - 最適なアイデア - ページ区切り – xAqweRx

答えて

0

あなたはオプション属性にng-if="$index < 10"を追加することができます。

は、ここに私のcodepenです。これにより、インデックスが10未満のアイテムのみがレンダリングされ、テキストフィルタは引き続き適用されます。 LimitToは、その中に10個のアイテムだけを含む新しい配列を返します。これにより、テキストフィルタはアイテムを見つけられません。

+1

フィルターを使用してモデルにバインドしました。それは今働く。私の実際の実装では、すべてがユニークなキーです。みんな、ありがとう – a2441918

関連する問題