2016-04-01 23 views
2

Ben bir fabrika, areaFactory var ve içindeki ben bu var yapılır:söz, vaat önce dönüş

return { 
    GetAreas : function(depKey){ 
     var areaPromise = AppService.getArea(depKey); 
     areaPromise.then(function (Obj){ 
      var areas = Obj['rows']; 
      var areaList = []; 

      angular.forEach(areas, function(obj){ 
       areaList.push({ 
        id: obj[0], 
        name: obj[1] 
       }); 
      }); 

      return areaList; 

     }); 
    } 
} 

Ben $scope.areas tanımsız hale bir kumandadan gelen $scope.areas = AreaFactory.GetAreas(key); diyoruz ve bunu ne biz çünkü anladım söz vermeden önce fabrika undefined döndürür.

Fabrikalar, söz konusu alanların listesini döndürmeden önce, söz verilene kadar nasıl bekleyebilir?

cevap

2

Dönüş fabrika yönteminden söz: Kontrol ünitesinde

GetAreas : function(depKey){ 
     var areaPromise = AppService.getArea(depKey); 
     return areaPromise.then(function (Obj){ 
       .... 
     }); 
} 

Ve sonra: Eğer söz döndüğünüzde

AreaFactory.GetAreas(key).then(function(list){ 
    $scope.areas = list; 
}); 
+0

Hızlı, uygulanabilir çözüm için teşekkürler! Şimdi ben mutlu öğle yemeğine gidebilirim, geri döndüğümde kabul edeceğim (10min kuralından dolayı kabul edene kadar 7 dakika) – klskl

0

, kendi denetleyicisi hata davalarını emin olun. Örneğin:

AreaFactory.GetAreas(key).then(
    function(list){ 
    $scope.areas = list; 
    }, 
    function(error) { 
    //handle error here 
    } 
); 
İlgili konular