2017-08-22 6 views
0

私はフレームワークの検索バーを使用して製品の仮想リストをフィルタリングしようとしているPhoneGapアプリケーションを開発中です。Framework7仮想リストsearchAll関数が使用されていません

現在の機能では、リストは正常に機能しますが、検索バーは仮想リスト全体ではなくレンダリングされた要素を検索します。

フレームワーク7のdocumentationは、バーチャルリストと検索バーを連動させるために使用しましたが、コード内の検索バーには、バーチャルリストのsearchAll機能は完全に無視されます。searchAll ()は何かを返し、現在の機能には何の違いもありません。

var listObject = { 
     items: selectProd, 
     template: '<li class="item-content"><div class="item-inner"><div data-value="{{model_id}}" class="item-title list-title">{{internal_descriptn}}</div></div></li></script>', 
     searchAll: function (query, items) { 
      var foundItems = []; 
      for (var i = 0; i < items.length; i++) { 
       // Check if title contains query string 
       if (items[i].title.indexOf(query.trim()) >= 0) foundItems.push(i); 
      } 
      // Return array with indexes of matched items 
      return foundItems; 
     } 
    }; 
    console.log(listObject); 
    var virtualList = myApp.virtualList('#product-list', listObject); 
    var mySearchbar = myApp.searchbar('.searchbar', { 
     searchList: '.list-block-search', 
     searchIn: '.list-title' 
    }); 

私が失われる可能性が唯一のものは、それらをリンクする属性または類似のように検索バーにvirtualListを置くためにいくつかの方法であるように私は彼らがちょうど魔法のように一緒に動作することを期待するために、それは奇妙なように感じます。しかし、それはドキュメンテーションが示唆したものであるようです(私の場合ではないか、それはうまくいくでしょう)。助けてくれてありがとう。

答えて

0

githubでexampleを見て解決しました。一見するとすべてが同じなので、それをコピーしてゆっくりと元に戻して、データを含めて問題の発生場所を確認します。いくつかの理由から、あなたのリストを含む親を特定するには、class virtual-listを使用する必要があります。次に、仮想リストと検索バーのクラスを指定します。代わりに別の名前を使用すると動作しません。これはドキュメントのどこにも言及されていないというのは非常に不満です。

関連する問題