Wie bekomme ich eine Webcam mit AngularJS?

8

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.

    
Imran 26.03.2016, 16:46
quelle

3 Antworten

7

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 ..

    
Imran 01.04.2016, 09:30
quelle
2

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:

%Vor%

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

    
Eray Balkanli 29.03.2016 13:35
quelle
0

Ich konnte die Webcam-Anweisung mit dem Kanalvorschlag aus dem obigen Kommentar basierend auf dem Beispiel auf der github-Seite .

%Vor%

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

    
CShark 30.03.2016 16:14
quelle

Tags und Links