2016-05-07 2 views
0

私はオブジェクトスコープ$ scope.postsATraiterの配列を得て、各ポストにランダムなx y値を与える関数を得ました。AngularJSを使ってオブジェクトの位置を変更するだけで

$scope.posAleatoire = function() { 
     var w = window.innerWidth; 
     var h = window.innerHeight; 
     for (var i = 0; i < $scope.postsATraiter.length; i++) { 
      var l = parseInt(Math.random() * (w - 200)); 
      var t = parseInt(Math.random() * (h - 200)); 
      $('#target'+i).css({ 
       'left': l + 'px', 
       'top': t + 'px', 
       'height' : '200px' 
      }) 
     } 
    } 

これは正常に動作しますが、私はこの機能でそれを使用する場合にのみ:

Posts.query({}, function() { 
    $scope.postsATraiter = $scope.posts; 
    $scope.posAleatoire(); 
}); 

この機能は、一人一人の前にコールであり、彼女は私のデータベース内のすべてのポストを取得し、$の範囲にそれを保存.postsATraiter、posAleatoireをコード内の別の場所で使用しても何もしません、なぜですか?

私はそれが役立つ場合は、私は、HTMLを投稿します。

<div ng-repeat="post in posts track by post._id"> 
    <div id="target{{$index}}"> 

答えて

0

$scope.posAleatoire()$scope.postsATraiterに依存しているので、あなたが$scope.postsATraiterに値を代入されたその関数の外$scope.posAleatoire()を呼び出すとき、動作しない理由ですので、それは、あります。

$scope.posAleatoire()を呼び出す前に、$scope.postsATraiterにはいくつかの値があります。

+0

私は '$ scope.postsATraiter'でいくつかの他の関数を使用していますので、値を検証する必要はありませんし、他の関数もうまくいきますが、私は知らないですが、おそらくcssの変更 – Vodet

関連する問題