Kann ich einen überwachten & lt; -Eingabe & gt; in AngularJS mit _lodash?
Habe ich Folgendes was macht eine Uhr auf einem <input>
Feld gebunden ist $Umfang.id. Jedes mal, wenn der Wert des Eingabefeldes ändert sich das watch-Funktion wird ausgeführt:
$scope.$watch("id", function (id) {
//code that does something based on $scope.id
});
Gibt es eine Möglichkeit, ich kann ein timeout auf diesem oder debounce diese mit _lodash, so dass der code
nicht ausführen, auf jeden Tastendruck während der Benutzer den Wert ändern.
Was ich möchte ist, für eine
Verzögerung von einer Sekunde, so dass, nachdem der Benutzer beendet Eingabe für eine Sekunde dann
der code-block im inneren der Uhr läuft. Beachten Sie, dass der Eingabe-Wert ist etwas, das konnte sich jederzeit ändern. Zum Beispiel brauche ich die Funktion, die aufgerufen werden, wenn der Wert "1" oder "10" oder "1000". Dies ist etwas ähnlich wie das Suchfeld mit Vorschlägen bei Google arbeitet. Wenn der Benutzer Typen in 999 dann brauche ich die Funktion, die aufgerufen werden. Wenn er löscht eine 9, also es ist zu 99 dann brauche ich die Funktion, die aufgerufen werden.
Ich habe _lodash zur Verfügung, so dass eine Lösung, die verwendet wird, könnte die beste Passform für meine Bedürfnisse.
InformationsquelleAutor der Frage Melina | 2014-01-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist, dass das, was Sie suchen?
Beachten Sie jedoch, dass, wenn Sie ändern möchten, $scope innerhalb dieser Funktion sollten Sie wickeln Sie es
$scope.$apply(...)
als wenn_.debounce
- Funktion verwendet$timeout
intern (soweit ich verstehe es nicht) Winkel wird nicht bewusst sein, die änderungen, die Sie haben auf der$scope
.UPDATE
Als um die aktualisierten Frage - ja, Sie müssen wickeln Sie die gesamte callback-Funktion Körper mit
$scope.$apply()
:InformationsquelleAutor der Antwort Alex Vayda
Können Sie ngModelOptions in Eckigen 1.3.0
HTML:
Mehr Info: https://docs.angularjs.org/api/ng/directive/ngModelOptions
InformationsquelleAutor der Antwort AhmedRiyad
Ich weiß, die Frage fragt nach einer lodash Lösung. Egal, hier wird eine eckige einzige Lösung:
In der Steuerung:
InformationsquelleAutor der Antwort jdachtera
Können Sie Kapseln diese in einer Richtlinie. Quelle: https://gist.github.com/tommaitland/7579618
Javascript
InformationsquelleAutor der Antwort jessegavin