Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在AngularJS中显示数组中的搜索建议_Javascript_Angularjs - Fatal编程技术网

Javascript 如何在AngularJS中显示数组中的搜索建议

Javascript 如何在AngularJS中显示数组中的搜索建议,javascript,angularjs,Javascript,Angularjs,我正试图找出如何从建议数组中显示多达10个选项,然后让用户能够选择选项,而该选项现在成为搜索查询 Html和AngularJS: <ul class="suggestions" ng-show="showAutocomplete"> <li ng-repeat="suggestion in autocomplete.suggestions" ng-show="suggestion.options.length > 0" ng-mousedown="searchForS

我正试图找出如何从建议数组中显示多达10个选项,然后让用户能够选择选项,而该选项现在成为搜索查询

Html和AngularJS:

<ul class="suggestions" ng-show="showAutocomplete">
  <li ng-repeat="suggestion in autocomplete.suggestions" ng-show="suggestion.options.length > 0" ng-mousedown="searchForSuggestion()"><small>Searching &mdash;</small>
    {{suggestion.options[0].text}}//how to display up to 10 options
  </li>
</ul>
JS:

更多JS:

var getSuggestions = function(query) {
  searchService.getSuggestions(query).then(function(es_return) {
    var suggestions = es_return.suggest.phraseSuggestion;

    if (suggestions.length > 0) {
      $scope.autocomplete.suggestions = suggestions;
    }
    else {
      $scope.autocomplete.suggestions = [];
    }

    if (suggestions.length > 0) {
      $scope.showAutocomplete = true;
    }
    else {
      $scope.showAutocomplete = false;
    }
  });
};
建议是映射到$scope.autocomplete对象的数组。 我使用的是来自ES的短语建议,选项是短语建议对象中的一个数组。Text是PhraseSuggestion对象中选项数组中的实际选项

我希望这能让事情变得更清楚一点——我对AngularJS有点陌生,还在学习

更新:
我应该能够在getSuggestions函数中包含我正在寻找的功能,对吗?只是稍微调整一下if语句。。。那么它真正要做的就是显示,如何在选项数组中显示多达10条建议

我想您可能希望使用嵌套的
ng repeat
,并在其上放置一个
limito
过滤器

$scope.autocomplete = {
    suggestions: []
};
$scope.showAutocomplete = false;
我制作了一个plunker,展示了如何使用
limito
,并在此处填充的选项上单击
ng

如果选择一个选项会改变建议,则可以相应地更新视图


希望这能帮到你

建议和选项之间有什么区别?我知道你的建议中有选择吗?你能举个例子吗?你可以用
limito:10
嵌套另一个
ng repeat
?并为每个?定义一个
ng单击
@lex82给我一分钟时间为问题添加更多信息我将尝试一下,让你知道。当然,它与您的代码并不完全相同,但您应该能够将其调整到您想要做的事情中:数据将在处理它的同时考虑一个想法-将增加问题-太多,无法评论
var getSuggestions = function(query) {
  searchService.getSuggestions(query).then(function(es_return) {
    var suggestions = es_return.suggest.phraseSuggestion;

    if (suggestions.length > 0) {
      $scope.autocomplete.suggestions = suggestions;
    }
    else {
      $scope.autocomplete.suggestions = [];
    }

    if (suggestions.length > 0) {
      $scope.showAutocomplete = true;
    }
    else {
      $scope.showAutocomplete = false;
    }
  });
};