如何将typeahead输入事件绑定到angularjs中的文本框?

时间:2014-05-20 11:48:20

标签: jquery angularjs typeahead.js

我想在angularjs中绑定Typeahead输入事件。我一直使用jQuery如下:

this.$("input#search-box").bind('typeahead:enterKeyed', function (e, data) {
    //to do stuff
}

我想在angularjs.中使用类似的代码编写代码我正在使用ui-bootstrap-typeahead typeahead工作正常但需要绑定enter事件以加载其他函数

我试过这个:

angular.module('genericDirectives', []).directive('ngEnter', function () {
    return {
        restrict: 'A',
        link: function (scope, element, attrs) {
            element.bind("typeahead:enterKeyed", function (event) {
                    console.log("Enter");
                    scope.$apply(function () {
                        scope.$eval(attrs.ngEnter);
                    });
                    event.preventDefault();
            });
        }
    };
});

HTML

<input type="text" data-ng-model="selectedSongs" ng-enter="reloadData(selectedSongs)" typeahead="songs for songs in getSongs($viewValue)" class="form-control" />

P.S。:我是angualrjs的新手

1 个答案:

答案 0 :(得分:1)

您可以尝试使用:typeahead-on-select($item, $model, $label)

示例:

<input id="search-box" type="text" ng-model="selectedData" typeahead-on-select="doSomething(selectedData)" />

确保您在$scope

中拥有它
$scope.doSomething = function (value) {
    // do something...
}