JQueryを使用せずにAngularJSを使用してオートコンプリートを作成しようとしています。私はthis exampleに従っていた。ここでHTMLコードがある:ここでAngularJS 1.4.4では "TypeError:iElement.autocompleteは関数ではありません" AngularJS 1.0.0ではエラーはありません
<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);
};
});
上記のコードは角度-1.0.0で完璧に動作します。しかし、angular-1.4.4を使用した場合、ブラウザが壊れて、私のブラウザでエラーが発生します:TypeError: iElement.autocomplete is not a function
。この問題を回避する方法はありますか?angular-1.4.4?
注:JQuery、angular-uiまたは他社製のライブラリを使用して、なしでを使用しています。
こんにちは感謝。しかし、** JQuery、angular-ui、または他のサードパーティのライブラリを使用しないで**動作させようとしています。私は私の質問を編集しました。私の答えでは –
も、角度を使用して可能な解決策があります。 iElementをangular.element: 'angular.element(iElement)'で囲み、triggerHandlerを使用して入力をトリガーします:http://api.jquery.com/triggerHandler/ – quirimmo