【问题标题】:AngularJS input event triggerAngularJS 输入事件触发器
【发布时间】:2014-01-04 14:58:46
【问题描述】:

我在互联网上搜索,如何将 jQuery UI 自动完成实现到 angularJS 中。我找到了一个很好的样本,它正在工作。这里Sourcecode

HTML

<div ng-app='MyModule'>
    <div ng-controller='DefaultCtrl'>
        <input auto-complete ui-items="names" ng-model="selected">
        selected = {{selected}}
    </div>
</div>  

JS

function DefaultCtrl($scope) {
    $scope.names = ["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"];
}

angular.module('MyModule', []).directive('autoComplete', function($timeout) {
    return function(scope, iElement, iAttrs) {
            iElement.autocomplete({
                source: scope[iAttrs.uiItems],
                select: function() {
                    $timeout(function() {
                      iElement.trigger('input');
                    }, 0);
                }
            });
    };
});

我真正感到困惑的是,关于 select 事件上的触发输入事件。

select: function() {
                    $timeout(function() {
                      iElement.trigger('input');
                    }, 0);
                }

什么是事件的输入,我从未听说过。我在互联网上搜索了有关输入事件的信息,但找不到有用的东西。

【问题讨论】:

标签: javascript angularjs dom-events


【解决方案1】:

一个很好的思考方式是这样的:它是一个 keyup 事件,它过滤掉所有对输入的文本值没有影响的键,并在从先前输入的值列表中选择完成时触发(感谢@szeryf 的提示!)。 有关更多详细信息,请参阅来自 stackoverflow 的 answer

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-27
    • 2021-12-30
    • 1970-01-01
    • 2017-01-08
    • 1970-01-01
    • 1970-01-01
    • 2012-08-23
    相关资源
    最近更新 更多