私はデモ プロジェクトを開発し、「dexie.js」でインデックス付きデータベースを構成しました。問題は、コールバックで関数を呼び出そうとしたときですstartsWithIgnoreCase
。
AngualrJS サービス:-
$rootScope.startsWithIgnoreCase = function (enteredItem) {
return db.itemMaster.where('itemCode').startsWithIgnoreCase(enteredItem).toArray($rootScope.callfunc);
}
//Callback method is this
$rootScope.callfunc=function(items) {
//$rootScope.collectItem angular array variable
$rootScope.collectItem = items;
//console.log("My close friends: " + JSON.stringify(items));
}
コントローラーで、
var data = $rootScope.startsWithIgnoreCase(searchText);
data
常に null を取得し、$rootScope.collectItem
これを初めて null と呼び、常に前の検索項目を表示します。以下、詳細です。
インデックス付きデータベースに最大100個のレコードがあるため、コールバックは機能しません。最初のstartsWithIgnoreCase
メソッドを呼び出すとnullに設定されますが、同じメソッドを呼び出して、以前に検索された一致した値を2回目に表示$rootScope.collectItem
しようとしています。$rootScope.collectItem
お気に入り:
- アイテム番号「441」を入力し、メソッドを
startsWithIgnoreCase
初めて呼び出してから$rootScope.collectItem
nullを設定したときのオートコンプリート検索ボックス。 - 「885」以外の別のアイテムを検索しようとすると、
$rootScope.collectItem
以前にフィルター処理された「441」のレコードが表示されます。
注:コールバックを実装したいのですstartsWithIgnoreCase
が、解決策が見つかりません。
angularjsを使用した「dexie.js」のサンプルコードを誰かが持っている場合は、そのリンクを送ってください。