Früher habe ich funktionierenden Webcam-Code in meine Anwendung eingefügt, aber jetzt funktioniert es nicht mehr, als ich auf AngularJS v1.5.0 aktualisiert habe. Ich verwende Webcam-Anweisung , die perfekt mit v1.3.0 funktioniert.
Hier ist mein Code:
%Vor%Aber jetzt gibt es folgenden Fehler mit AngularJS v1.5.0:
Uncaught Error: [$ parse: isecdom] Verweis auf DOM-Knoten in Angular Ausdrücke sind nicht erlaubt! Ausdruck: onSuccess (Video) Ссылка $ parse / isecdom? p0 = onSuccess (Video)
Ich habe auch versucht, eine andere Lösung mit AngularJS ng-Camera zu verwenden, aber selbst die Demo-Seite funktioniert nicht für mich .
Hinweis: Ich weiß, dass wir nicht auf das DOM von der neueren Version von AngularJS zugreifen können, aber derselbe Code funktioniert mit der älteren Version. Ich muss wissen, wie man das "Video" -DOM-Objekt an den Controller übergibt.
Ich habe die Lösung des Problems gefunden: Zwei Dinge müssen erledigt werden:
Zuerst in HTML:
%Vor%Als Zweites im Controller können Sie auf DOM-Video zugreifen:
%Vor%Hier ist das Arbeitsbeispiel ..
Im Allgemeinen tritt ein potenzieller Fehler auf, wenn ein Ausdruck versucht, auf einen DOM-Knoten zuzugreifen, da der Zugriff auf DOM-Knoten über Ausdrücke von AngularJS eingeschränkt ist, da sonst beliebiger Javascript-Code ausgeführt werden kann.
Das $parse:isecdom error
steht mit einem Aufruf einer Funktion durch einen Event-Handler in Verbindung, wenn ein Event-Handler einen DOM-Knoten zurückgibt, wie unten:
Um dieses Problem zu beheben, vermeiden Sie den Zugriff auf DOM-Knoten und vermeiden Sie das Zurückgeben von DOM-Knoten von Event-Handlern. (Referenz: Ссылка $ parse / isecdom)
Das Hinzufügen einer expliziten Rückgabe könnte dieses Problem wie hier beschrieben beheben: CoffeeScript - Referenzieren von DOM-Knoten in Angular-Ausdrücken ist nicht zulässig
Ich konnte die Webcam-Anweisung mit dem Kanalvorschlag aus dem obigen Kommentar basierend auf dem Beispiel auf der github-Seite
Bei den Callbacks onSuccess
( on-streaming
attr) und onStream
( on-stream
attr) wurde die Eigenschaft video
von myChannel
mit dem Video-DOM-Element ausgefüllt (und dann wäre es offensichtlich verfügbar zu allem anderen auch im Controller). Laut dem Kommentar im Beispielcode sollten Sie jedoch warten, bis mindestens onSuccess
darauf zugreift. Hier ist ein funktionierendes Beispiel
Tags und Links javascript angularjs dom webcam