ng-model löst keine change-Ereignis

Einem Rahmen, den ich verwende (jQuery Mobile) Listener für das change-Ereignis der Texteingabefelder zur änderung des Markups. Dies ist framework-code, so kann ich nicht ändern und mit dem richtigen AngularJS-Funktionen.

Bin ich verbindlich die textarea-Komponente, um eine scope-variable per ng-model. Wenn die scope-variable ändert (und damit die textarea-Inhalt, weil es gebunden ist) keine javascript-change-Ereignis ausgelöst wird. Allerdings ohne das change-Ereignis jQuery Mobile nicht ändern, die markup.

Gibt es eine vordefinierte Art und Weise zu lassen, Eckige auslösen des change-Ereignisses, ohne zu schreiben eine Richtlinie? Wenn ich eine Richtlinie oder ng-ändern muss ich hinzufügen der entsprechenden code, um jedes vorkommen eines textarea-element.

Kurzes Beispiel, was ich versuche zu tun, (auch als jsFiddle):

<div ng-app="app" ng-controller="Controller">
    <textarea ng-model="textValue"></textarea>
</div>

<script type="text/javascript>
var module = angular.module("app",[]);

module.controller("Controller", function ($scope) {
   $scope.textValue = "Test"; 

   window.setInterval(function () {
       $scope.textValue = $scope.textValue === "Test" ? "Hello World" : "Test";
       $scope.$apply();
   },2000);
});

//Dummy framework code which I do not have access to
document.querySelector("textarea").addEventListener("change", function () {
  alert("changed");
});
</script>

Wenn das Modell aktualisiert, wird kein change-Ereignis ausgelöst wird. Wenn Sie geben Sie in das Textfeld, und klicken Sie außerhalb (ein einfaches textarea ändern), das change-Ereignis ausgelöst wird.

Die Methode addEventListener ist native, nicht ein jquery ein. Auch die ng-model überschreibt das change-Ereignis, besonders, wenn das change-Ereignis wird eine native, nicht behandelt eckig.
Nicht sicher, was Sie zu tun versuchen.
Ein wenig von Thema, aber ich kann einige Ratschläge. Wenn es irgendwie möglich ist, sollte nicht kombinieren, jQuery Mobile und AngularJS, Sie nicht nicht spielen sehr gut zusammen. Ich denke, Sie werden eine Menge Kopfschmerzen zu versuchen, um dies zu erreichen, ich spreche aus Erfahrung.
Das Projekt Einschränkungen verlangen eine Kombination von JQM und AngularJS das klappte soweit ganz gut. Ich war nur auf der Suche nach etwas "Magie" - Schalter ermöglicht das change-Ereignis der Vermehrung. Dieser Schalter scheint nicht zu existieren.

InformationsquelleAutor Marcus Krahl | 2014-07-31

Schreibe einen Kommentar