javascript - $interval 不允许我更新我的前端

标签 javascript html css angularjs

我正在尝试创建一个登陆页面,其中图片和随附的标题会更新,以对象数组(带标题的图片)显示所有图像和标题。我认为它需要使用 $interval 或 $timeout。

我的 JS 将显示一张不更新的图片:

.controller('userCtrl', function ($scope, Auth, $location, $timeout) {
    var Picture = Parse.Object.extend("Picture");
    var query = new Parse.Query(Picture);
    query.find({
         success: function(pictures){
             var x = pictures.length;
             var getRandomImage = function () {
                 var imageCount = x
                 var index = Math.floor(
                     ( Math.random() * imageCount * 2 ) % imageCount);
                 return( pictures[ index ] );
                } 
              $scope.image = getRandomImage();

           })

我认为我的 JS 应该可以工作,创建一个随机滚动的图片行:

.controller('userCtrl', function ($scope, Auth, $location, $timeout) {
    var Picture = Parse.Object.extend("Picture");
    var query = new Parse.Query(Picture);
    query.find({
         success: function(pictures){
             var x = pictures.length;
             var getRandomImage = function () {
                 var imageCount = x
                 var index = Math.floor(
                     ( Math.random() * imageCount * 2 ) % imageCount);
                 return( pictures[ index ] );
             }
             $scope.image = $timeout(function(){getRandomImage();}, 3000);

           })

我的 HTML 的关键部分:

<img id="logo" src= {{image.get('logo').url()}}>
<p>
   This is a picture ${{image.get('caption')}}
</p>

最佳答案

您可以在 interval func 中移动赋值,而且您不需要在每次回调时都创建函数 getRandomImage,因此您可以尝试这样的操作

.controller('userCtrl', function ($scope, Auth, $location, $timeout) {
    function getRandomImage(pictures) {
        var imageCount = pictures.length,
            index = Math.floor( ( Math.random() * imageCount * 2 ) % imageCount);
        return( pictures[ index ] );
    }

    var Picture = Parse.Object.extend("Picture");
    var query = new Parse.Query(Picture);
    query.find({
        success: function(pictures){
            $interval(function(){$scope.image = getRandomImage(pictures);}, 3000);
        }
    });
}

关于javascript - $interval 不允许我更新我的前端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29253927/

相关文章:

javascript - HTML5 音频标签无法在移动设备上引发事件 `canplay`

javascript - Amcharts XY 图表不显示气球

javascript - 正则表达式匹配一切

javascript - 正则表达式必须在长度范围内并且包含字母和数字

javascript - 如何在父级中包含 div 网格

css - 我在菜单中的元素似乎没有宽度?

html - 更改部分文本占位符颜色

html - 如何在谷歌地图上 float 一个 div?

php - 将动态创建的单选按钮中的值 POST 到 mysql 数据库

javascript - AngularJS 错误 : [$injector:unpr] Unknown provider: $achorScrollProvider <- $achorScroll <- MainController