javascript - 如何仅运行此 Angular $interval 函数三次(3 个循环)

标签 javascript angularjs canvas

我想从我的 Controller 运行以下函数,使用间隔并在 View 模板中生成三个不同的头像。

目前,它只生成一个 avatar.png ,但我很想生成三个不同的。

那么我怎样才能设置 html 以显示三个不同的图像呢? 这是我的代码:

Controller :

$scope.capture = function(){
    var canvas = document.getElementById('canvas');
    var video = document.getElementById('video');
    canvas.getContext('2d').drawImage(video, 0, 0, video.videoWidth, video.videoHeight);
}

$interval (function(){
    $scope.capture();
}, 1500);

以及我绘制图像的 Canvas 模板:

<canvas id="canvas"></canvas> 

所以基本上,我希望在 1.5 秒后绘制图像并且绘制的图像总数应该是 3。每个图像都有自己的 Canvas ID 不同。

最佳答案

你为什么不用$timeout

for(var i=0;i<3;i++) {
    $timeout (function(){
        $scope.capture();
    }, 1500*i);
}

这将执行您的函数 3 次。您可能需要编写逻辑以在具有不同 ID 的不同 Canvas 中绘制图像。

关于javascript - 如何仅运行此 Angular $interval 函数三次(3 个循环),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39198569/

相关文章:

javascript - 如何可靠地确定浏览器是否支持鼠标悬停事件?

javascript - Angularjs 无法在 html 中显示对象

javascript - 保留 Canvas 的一部分

javascript - 导航栏 Bootstrap 渲染问题

javascript - prestashop-使用 ajax onclick 创建新表单

javascript - 遍历数组并在匹配正确值时退出?

javascript - Angular JS : importing JSON data with $http. get() - 在 Controller 中工作,不在服务中 - 为什么?

javascript - AngularJS 文件拖放指令

javascript - 我可以不使用对象中的对象来绘制图像()吗?

javascript - 找不到在 div 中创建的 Canvas 元素