首页 文章

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

提问于
浏览
0

我附上了以下的附带物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 回答

  • 1

    根据Autocomplete文档,有一个“选择”事件可以满足您的需求:

    $( "#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

相关问题