Ich versuche, eine Autocomplete mit AngularJS ohne Verwendung von JQuery zu machen. Ich folgte this example. Hier ist der HTML-Code:"TypeError: iElement.autocomplete ist keine Funktion" in AngularJS 1.4.4, aber kein Fehler in 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>
Hier ist die Steuerung und Richtlinie:
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);
};
});
Der obige Code funktioniert perfekt mit Winkel 1.0.0. Aber wenn ich angular-1.4.4 verwende bricht es und ich bekomme einen Fehler in meinem Browser sagen: TypeError: iElement.autocomplete is not a function
. Gibt es einen Workaround dafür in winkel-1.4.4?
HINWEIS: Ich versuche, es funktioniert OHNE mit JQuery, eckig-Ui oder einer Drittanbieter-Bibliothek.
Hallo danke für die Antwort. Aber ich versuche es ** ohne JQuery, angular-ui oder irgendeine andere Third-Party-Bibliothek ** funktionieren zu lassen. Ich habe meine Frage bearbeitet. –
In meiner Antwort gibt es auch eine mögliche Lösung mit nur eckigen. Wickeln Sie Ihr iElement mit angle.element: 'angle.element (iElement)' und verwenden Sie den TriggerHandler, um die Eingabe auszulösen: http://api.jquery.com/triggerHandler/ – quirimmo