javascript - 如何让网络摄像头与 AngularJS 一起工作?

标签 javascript angularjs dom webcam

之前我已经将可工作的网络摄像头代码放入我的应用程序中,但现在当我更新到 AngularJS v1.5.0 时它不工作了。我正在使用 webcam-directive它与 v1.3.0 完美配合。

这是我的代码:

<webcam placeholder="selfiePlaceHolder"
  on-stream="onStream(stream)"
  on-access-denied="onError(err)" on-streaming="onSuccess(video)">
</webcam>

但现在 AngularJS v1.5.0 出现以下错误:

Uncaught Error: [$parse:isecdom] Referencing DOM nodes in Angular expressions is disallowed! Expression: onSuccess(video)
http://errors.angularjs.org/1.5.0/$parse/isecdom?p0=onSuccess(video)

我还尝试对 AngularJS ng-Camera 使用不同的解决方案但即使是它的演示页面也不适合我。

注意:我知道问题是我们无法从较新版本的 AngularJS 访问 DOM,但相同的代码适用于旧版本。我需要知道如何将“视频”DOM 对象传递给 Controller ​​。

最佳答案

我已经找到了问题的解决方案。需要做两件事:

首先在 HTML 中:

<webcam channel="channel" 
        on-streaming="onSuccess()" 
        on-error="onError(err)" 
        on-stream="onStream(stream)"></webcam>

其次,在 Controller 中,您可以使用以下代码访问 DOM 视频:

 $scope.onSuccess = function () {
        // The video element contains the captured camera data
        _video = $scope.channel.video;
        $scope.$apply(function() {
            $scope.patOpts.w = _video.width;
            $scope.patOpts.h = _video.height;
            //$scope.showDemos = true;
        });
    };

这是一个有效的 example .

关于javascript - 如何让网络摄像头与 AngularJS 一起工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36237992/

相关文章:

javascript - 使用 HTML 和 Javascript 的表单

javascript - AngularJS ng-class 不应用 Bootstrap 错误类

javascript - [dom-bind::_createEventHandler]:未定义监听器方法

javascript - 如何从 Angular 模板中通过他的 ID 获取 DOM 元素?

javascript - 当监听器已附加到 Backbone.Model 事件时获得通知

javascript - 如何在react-native中编写异步存储值返回函数

javascript - 全局上下文 - 检查未定义

javascript - LokiJS 不允许插入 Json 数据

angularjs - 多方向angularjs View 动画

javascript - 文本选择跳转到顶部