使用angularjs自动完成(无法获取输入值)

时间:2016-07-05 22:37:10

标签: javascript angularjs autocomplete angular-ngmodel

我附上了以下的羽毛球 http://plnkr.co/edit/NPpjRM54vPu56GH9N1kI?p=preview

如您所见,有一个可用标签列表。如果我在输入字段中写'a',则会在下面显示几个自动填充项目。

如果我继续输入,我可以使用以下代码

查看我在其旁边键入的内容
<input id="tags" ng-keyup="complete()" ng-model="data" /> selected = {{data}}

但是,我只是在自动填充的下拉列表中选择“ActionScript”,而不是输入,而不是更新为ng-model。

有人可以让我知道如何从下拉列表中进行选择并将其更新为ng-model。

1 个答案:

答案 0 :(得分:1)

根据自动填充文档,有一个&#34; select&#34;将满足您需求的活动:

$( "#tags" ).autocomplete({
  source: $scope.availableTags,
  select: function( event, ui ) {
    $scope.data = ui.item.value;
  }
});

这将使您在将焦点移出字段后更改$ scope.data的值。如果要立即传播更改,可以使用0秒$ timeout,如下所示:

$( "#tags" ).autocomplete({
  source: $scope.availableTags,
  select: function( event, ui ) {
    $timeout(function() { $scope.data = ui.item.value; }, 0);
  }
});

请记住,您需要在控制器中注入$ timeout:

app.controller('ctrl',function($scope, $timeout){ ... });

工作示例:http://plnkr.co/edit/3rstgrTQJp5voYEJdo2C?p=preview