AngularJS 1.4.4 中的“TypeError: iElement.autocomplete 不是一个函数”,



我正在尝试使用AngularJS进行自动完成,而无需使用任何JQuery。我正在遵循这个例子。这是 html 代码:

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

这是控制器和指令:

function DefaultCtrl($scope) {
    $scope.names = ["john", "Bill", "Charlie"];
}
angular.module('MyModule', []).directive('autoComplete', function($defer) {
    return function(scope, iElement, iAttrs) {
        scope.$watch(iAttrs.uiItems, function(values) {
            iElement.autocomplete({
                source: values,
                select: function() {
                    setTimeout(function() {
                      iElement.trigger('input');
                    }, 0);
                }
            });
        }, true);
    };
});

上面的代码与angular-1.0.0完美配合。但是如果我使用 angular-1.4.4,它会中断,我的浏览器中出现一个错误,说:TypeError: iElement.autocomplete is not a function .在 angular-1.4.4 中是否有任何解决方法?

注意:我正在尝试使其在不使用JQuery,angular-ui或任何第三方库的情况下工作。

您关注的是一个使用旧版本angular的旧示例。这就是它不起作用的原因。

也许用angular.element包裹iElement并使用triggerHandler,它可能会起作用。或者,如果使用jQuery,请尝试用$ 包装它,例如:

$(iElement).trigger('input');

但我的建议,即使它有效,也是切换到角度 ui 的。简单更好、更强大、更简单:

https://angular-ui.github.io/bootstrap/#!#%2Ftypeahead

最新更新