코드 설명은 다음과 같습니다. 여기 자동 완성 기능에서 서버의 결과가 표시되지 않는 경우가 있음
은 내가 사용하고있는 자동 완성이다 (하지만 난 3 개 다른 자동 완성 패키지를 조사했습니다, 그들은 모두 같은 방식으로 작동) :https://goodies.pixabay.com/javascript/auto-complete/demo.html
그리고 여기에 내가 그것을 사용하고 어떻게 (나는 사용자가 검색 창에 입력 할 때 내 자동 완성을 업데이트 할 수 있도록 socket.io와 함께 자동 완성을 사용하고 주) 클라이언트 측 : 그래서 여기
socket.on('searchBarResults', function(data) {
var my_autoComplete = new autoComplete({
selector: 'input[name="searchbar4"]',
minChars: 1,
cache: false,
source: function(term, suggest){
term = term.toLowerCase();
var choices = [
data[0]._source.movie
];
var matches = [];
for (i=0; i<choices.length; i++)
if (~choices[i].toLowerCase().indexOf(term)) matches.push(choices[i]);
suggest(matches);
}
});
$searchBar4.on('input', function(event){
my_autoComplete.destroy();
});
});
는 모든 무엇입니까 이 작업은 사용자가 영화의 이름을 입력하기 시작하면 입력 한 모든 단어가있는 후에 서버가 일치하는 항목을 데이터베이스에서 검색하고 그 결과를 클라이언트에 보냅니다. 예를 들어
: 사용자가 스타를 검색하는 경우, 서버는 다시 스타 트렉 발견되지 않는 나라 전송되며, 검색 창은 스타 트렉 발견되지 않는 나라라는 자동 완성 옵션 표시됩니다.
잘 작동합니다.
만약 사용자 유형 스타 트렉 서버가, 다시, 다시 스타 트렉 발견되지 않는 나라 전송되며, 자동 완성이 업데이트됩니다. 괜찮아. 사용자 유형 스타 나라는 서버 가 다시 스타 트렉 발견되지 않는 나라 보낼 경우하지만 자동 완성는 표시되지 않습니다 : 여기에
는 내가 가지고있는 문제입니다.단어가 인 경우 자동 완성은 결과 만 표시합니다 (단어를 건너 뛸 수 없음).
사용자가 단어를 검색 상자에 입력하는 순서와 상관없이 에 항상의 결과를 표시하려면 어떻게 자동 완성을 할 수 있습니까?
작동하지 않는 것 같습니다. 특히,'indexOf (word) == -1'에 대해서'(word)'의 사용에 관해서 말하고 있습니다 : * 예기치 않은 (커스텀/상속 된) 멤버들에 대한 반복 가능성, 아마도 hasOwnPropery가 없다 ... * – MonkeyOnARock
좋아, 'indexOf (word) == -1'을'indexOf (word) == 0'으로 바꾸면 처음에는 작동하는 것처럼 보입니다. ** Star Country **를 입력하면 이제 ** Star Trek Untiscovered Country ** 결과를 얻게됩니다. 더 많은 테스트를하고 나중에 확인하겠습니다. – MonkeyOnARock
그래, 틀렸어. 코드를 작업 스 니펫으로 업데이트했습니다. – smoksnes