Javascript Angularjs应用程序使用autocomplete.js并从多个Algolia源读取数据不起作用

Javascript Angularjs应用程序使用autocomplete.js并从多个Algolia源读取数据不起作用,javascript,angularjs,autocomplete,algolia,Javascript,Angularjs,Autocomplete,Algolia,我正在尝试使用AngularJS和Algolia的autocomplete.js以及Algolia的两个源(索引)来实现自动完成功能 第二个源自动完成功能正常,但地址自动完成功能仅适用于键入的第一个字母/数字。键入第二个字符时,地址列表将消失。如果我交换这两个来源,地址可以正常工作,zipcode只适用于第一个字母/数字 此外,在执行搜索时,控制台日志(地址)显示正在搜索的正确地址,但不会显示在自动完成结果中 下面是一个正在运行的gif: 好的,我找到了一个解决办法。我永远无法让这个自动完成的

我正在尝试使用AngularJS和Algolia的autocomplete.js以及Algolia的两个源(索引)来实现自动完成功能

第二个源自动完成功能正常,但地址自动完成功能仅适用于键入的第一个字母/数字。键入第二个字符时,地址列表将消失。如果我交换这两个来源,地址可以正常工作,zipcode只适用于第一个字母/数字

此外,在执行搜索时,控制台日志(地址)显示正在搜索的正确地址,但不会显示在自动完成结果中

下面是一个正在运行的gif:


好的,我找到了一个解决办法。我永远无法让这个自动完成的角度版本工作。另外,当I
console.log(o)时
在autocomplete.angular.js中,构造函数
函数数据集(o){}
被注销了两次。不确定这是否是问题所在……但正常的autocomplete.js不会将其注销两次

自从切换到autocomplete.j以来,autocomplete一直工作得很好。以下是我使用的代码:

autocomplete('#quicksearch', { hint: false, debug: true, openOnFocus: true }, [
{
  source: autocomplete.sources.hits(settings.replica, { hitsPerPage: 5 }),
  displayKey: 'address',
  name: 'address',
  templates: {
    suggestion: function(suggestion) {

       var address = '<span class="address">' + suggestion._highlightResult.address.value;

       if(suggestion.aptmnt) {
        address += ', Unit ' +suggestion.aptmnt + '</span> | ';
       } else {
        address +='</span> | '; 
       }

       address += '<span>' + suggestion.totbdrms + ' beds </span> | ' +
        '<span>' + suggestion.totbaths + ' bath </span> | ' +
        ' <span> $' + suggestion.price + '</span>';
        return address;
    }
  }
},{
  source: autocomplete.sources.hits(settings.zipcode, { hitsPerPage: 5 }),
  displayKey: 'zipcode',
  name: 'zipcode',
  templates: {
    suggestion: function(suggestion) {
       var zipcode = '<span class="zipcode">' + suggestion.zipcode + '</span>';
        return zipcode;
    }
  }
}

]);
autocomplete(“#quicksearch”,{hint:false,debug:true,openOnFocus:true}[
{
source:autocomplete.sources.hits(settings.replica,{hitsPerPage:5}),
displayKey:'地址',
姓名:'地址',
模板:{
建议:功能(建议){
var地址=''+建议。\u highlightResult.address.value;
如果(建议,aptmnt){
地址+=',单位'+suggestion.aptmnt+'|';
}否则{
地址+=“|”;
}
地址+=''+建议.totbdrms+'床位|'+
''+建议.totbaths+'bath |'+
“$”+建议价格+”;
回信地址;
}
}
},{
source:autocomplete.sources.hits(settings.zipcode,{hitsPerPage:5}),
displayKey:'zipcode',
名称:“zipcode”,
模板:{
建议:功能(建议){
var zipcode=''+suggestion.zipcode+'';
返回zipcode;
}
}
}
]);

您有问题的实例吗?我不能公开分享。我还有别的方法可以寄给你吗?
jquery - v1.12.4
angularjs - 1.6.1
algoliasearch.angular.min.js - v3
algoliasearch.helper.min.js - v2.18.0
autocomplete.angular.min.js - v0.28.1
angular-ui-router.js - v0.4.2
autocomplete('#quicksearch', { hint: false, debug: true, openOnFocus: true }, [
{
  source: autocomplete.sources.hits(settings.replica, { hitsPerPage: 5 }),
  displayKey: 'address',
  name: 'address',
  templates: {
    suggestion: function(suggestion) {

       var address = '<span class="address">' + suggestion._highlightResult.address.value;

       if(suggestion.aptmnt) {
        address += ', Unit ' +suggestion.aptmnt + '</span> | ';
       } else {
        address +='</span> | '; 
       }

       address += '<span>' + suggestion.totbdrms + ' beds </span> | ' +
        '<span>' + suggestion.totbaths + ' bath </span> | ' +
        ' <span> $' + suggestion.price + '</span>';
        return address;
    }
  }
},{
  source: autocomplete.sources.hits(settings.zipcode, { hitsPerPage: 5 }),
  displayKey: 'zipcode',
  name: 'zipcode',
  templates: {
    suggestion: function(suggestion) {
       var zipcode = '<span class="zipcode">' + suggestion.zipcode + '</span>';
        return zipcode;
    }
  }
}

]);