我正在尝试创建一个自动完成搜索框,我有以下firebase代码,我在输入框的onkeyup上调用它:
function($scope){
$scope.searchResult = [];
firebaseDb.ref("event")
.orderByChild("eventName")
.startAt(scope.searchinput)
.endAt(scope.searchinput + "\uf8ff")
.on("value", function(snapshot) {
snapshot.forEach(function(childSnapshot) {
$scope.searchResult.push(childSnapshot.key);
//if last iteration clear $scope.searchResult to avoid duplicates
});
});
}
}
我将html中的div
绑定到searchResult
模型以显示建议。正如代码中的注释中所述,我需要在上一次迭代结束时清除searchResult
。我无法在firebase回调函数之外清除它,因为由于异步性质,我的searchResult
数组可能会在搜索之间被清除。
如何找到特定的迭代是最后一次?当用户在搜索框中键入名称时,任何其他避免重复的方法都欢迎searchResult
数组