javascript - 如何更新动态自动完成的数据列表?

标签 javascript angularjs html angularjs-ng-repeat datalist

我正在使用数据列表在输入文本中自动完成。 我很好地初始化了它,但我想动态更新我的源代码和我的建议。

你知道如何做这样的事情吗?

HTML:

<input type="text" ng-model="title" list="suggestionList" ng-change="changeIsRaised()">
<datalist id="suggestionList">
    <option data-ng-repeat="ttl in titles" value="{{ttl}}">
</datalist>

JavaScript:

$scope.titles = ["Action Comics", "Detective Comics", "Superman", "Fantastic Four", "Amazing Spider-Man"];

$scope.changeIsRaised = function() {
    if ($scope.title == "ch") {
        var newSrc = ["john", "bill", "charlie", "robert", "alban", "oscar", "marie", "celine", "brad", "drew", "rebecca", "michel", "francis", "jean", "paul", "pierre", "nicolas", "alfred", "gerard", "louis", "albert", "edouard", "benoit", "guillaume", "nicolas", "joseph"];
        $scope.titles = newSrc;

    }
}

最佳答案

您将“nicolas”列出了两次,导致 ng-repeat 错误。您可以添加一个 track by $index 来修复它,但您可能应该只删除重复项。

function ctrl($scope) {
  $scope.titles = ["Action Comics", "Detective Comics", "Superman", "Fantastic Four", "Amazing Spider-Man"];

  $scope.changeIsRaised = function() {
    if ($scope.title == "ch") {
      var newSrc = ["john", "bill", "charlie", "robert", "alban", "oscar", "marie", "celine", "brad", "drew", "rebecca", "michel", "francis", "jean", "paul", "pierre", "nicolas", "alfred", "gerard", "louis", "albert", "edouard", "benoit", "guillaume", "joseph"];
      $scope.titles = newSrc;

    }
  }
}
angular.module('app', []).controller('ctrl', ctrl);
<body ng-app="app">
  <div ng-controller="ctrl">
    <input type="text" ng-model="title" list="suggestionList" ng-change="changeIsRaised()">
    <datalist id="suggestionList">
      <option data-ng-repeat="ttl in titles" value="{{ttl}}">
    </datalist>
  </div>
  <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
</body>

关于javascript - 如何更新动态自动完成的数据列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38315256/

相关文章:

javascript - 手机间隙 : Dynamically show & hide status bar (iOS Xcode)

javascript - 未捕获的不变违规 : Rendered more hooks than during the previous render

angularjs - 按日期排序 AngularJS ng-repeat

javascript - 如何使用 AngularJS 将对象插入数组

angularjs - Cordova Angularjs 请求 GPS

html - CSS float 属性 - float div 与 float 段落时的行为差异

html - 垂直对齐 block 元素中的文本

javascript - 在js中计算百分比

HTML 使元素之间的空间更小

javascript - 安卓浏览器输入类型号