之前我已经将可工作的网络摄像头代码放入我的应用程序中,但现在当我更新到 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/