2014-11-01 45 views
1

我想從工廠獲取http請求數據,在父控制器中處理數據並將其傳回工廠供我的子控制器訪問。如何在我的情況下將數據傳遞給另一個控制器?

我有類似

父控制器

myFactory.makeApi(id) 
      .then(function(data) { 
       //process data here... 
       //I want to pass productDetail back to my factory and let 
       //my child controller use it 
       $scope.productDetail = productDetail; 
      }) 

兒童控制器

//I want to get the productDetail through parent' $scope.productDetail. 
//but not sure how to get it. 
myFactory.getProductDetail ??? 

myFactory

service.makeApi = function(id) {  
     return getProduct(id) 
      .then(function(httpObj) { 
       return httpObj.data; 
      }) 

    } 

    var getProduct = function(id) { 
     return $http.post('/api/product/getProduct/' + id) 
    } 

基本上我不知道如何通過productD etail到我的孩子控制器。感謝幫助。

回答

1

從父控制器可以播放喜歡

$scope.broadcast("datarecieved", data); 

在孩子的datrecieved事件中,你可以recived這個數據

$scope.$on("datarecieved",function(data){ 
    //do something 
}) 

你的情況喲可以做到這一點

父代碼

 myFactory.makeApi(id) 
     .then(function(data) { 
      //process data here... 
      //I want to pass productDetail back to my factory and let 
      //my child controller use it 
      $scope.productDetail = productDetail 
      $scope.broadcast("datarecieved", productDetail); 
     }) 

兒童

$scope.$on("datarecieved",function(data){ 
    //do something 
    }) 
1

通過家長和孩子控制,我想你的意思是,他們的觀點是嵌套的。

如果是這種情況,子女$scope原型繼承自父母$scope,因此您可以在子控制器中用$scope.productDetail檢索它。

相關問題