2015-03-25 37 views
0

我试图创建一个着陆页,其中的图片和附加说明更新,显示对象数组中的所有图像和标题(有标题的图片)。我认为它需要使用$ 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); 

      }) 

的关键部分

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

所以预期什么行不通,什么问题是什么呢?所包含的代码段中甚至没有使用$ interval。 – doldt 2015-03-25 11:10:47

+0

我用$ timeout和$ interval来试用它。我已经看到了两个例子,我根本就没有工作。要清楚。我想在我的着陆页上显示一张图片和标题。每隔几秒3000毫秒,在这种情况下应该会出现一个新的图片和标题。 – rashadb 2015-03-25 11:14:06

+0

向我们展示您尝试过的一些代码,我们会尽力帮助您解决问题。 – doldt 2015-03-25 11:16:00

回答

1

可以移动的时间间隔FUNC内部分配,并且你也不要“T需要在每一个回调创建功能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); 
     } 
    }); 
} 
1

这条线:

0123我的HTML
$scope.image = $timeout(function(){getRandomImage();}, 3000); 

将$ timeout调用的返回值放置到$ scope.image变量中,并且该返回值(根据$ timeout documentation)是一个承诺对象。

相反,你可能希望通过getRandomImage函数的返回值放入您的图像变量,一定超时后,像这样:

$timeout(function(){$scope.image = getRandomImage();}, 3000); 
+0

感谢一堆。 $ interval实际工作:$ interval(function(){$ scope.image = getRandomImage();},3000); – rashadb 2015-03-25 11:24:54

相关问题