5

私は持っている:

$scope.bounds = {}

そして後で私のコードで:

$scope.$on('leafletDirectiveMap.load', function(){
    console.log('runs');
    Dajaxice.async.hello($scope.populate, {
                'west' : $scope.bounds.southWest.lng,
                'east': $scope.bounds.northEast.lng,
                'north' : $scope.bounds.northEast.lat,
                'south': $scope.bounds.southWest.lat,
    });
});

あなたが物乞いで見ることができる境界は空ですが、後で(数ミリ秒)javascriptライブラリ(リーフレット angular)でロードされます。ただし、$scope.$on(...)境界が設定される前に実行されるため'west' : $scope.bounds.southWest.lng,、未定義の変数でエラーが返されます。

私がやりたいことは、境界 (southWestおよびnorthEast) が設定されるのを待ってから、Dajaxice.async.hello(...).

だから、「境界が設定されるまで待つ」ようなものが必要です。

4

2 に答える 2

5

$watchこの目的のために、次のようなものを使用できます。

 $scope.$on('leafletDirectiveMap.load', function(){

       $scope.$watch( "bounds" , function(n,o){  

           if(n==o) return;

           Dajaxice.async.hello($scope.populate, {
               'west' : $scope.bounds.southWest.lng,
               'east': $scope.bounds.northEast.lng,
               'north' : $scope.bounds.northEast.lat,
               'south': $scope.bounds.southWest.lat,                
            });

       },true);
 });
于 2013-10-17T11:47:23.883 に答える