2016-06-10 66 views
1

我做出這樣的GET請求:AngularJS廣播回報不確定

ChartFactory.get({id: $scope.selectedItem}, function(data) { 
    $scope.selectedItem = data; 
    console.log($scope.selectedVal); 


    $rootScope.$broadcast('selectedParams',function(event, selectedVal){}); 
}); 

我想播我的GET請求什麼返回到主控制器和我做這樣的事情:

$rootScope.$on('selectedParams', function() { 

    console.log("!!!!!!!!!!!!!!"); 
    console.log($rootScope.selectedVal); 
}) 

但它返回undefined。我錯過了什麼。我沒有正確廣播該消息嗎?

當我廣播我的消息後,我想在另一個控制器中使用我的selectedVal。我試過像這樣:

$scope.$watch('selectedParams', function(){ 
       console.log($scope.selectedParams); 
       console.log("ChangedParams"); 
       ChartData(); 
      },true); 

這是好的。我是否正確使用th $ watch功能?

回答

0

使用此:

$ rootScope $廣播( 'selectedParams',{數據:$ scope.selectedVal})。

第一個參數是事件名稱。 其次是這個事件帶來的數據。

Blockquote $ broadcast(name,args); 向下分派事件名稱給所有子範圍(及其子級),通知註冊的$ rootScope.Scope偵聽器。

0

廣播這樣的:

$rootScope.$broadcast('selectedParams', { selectedParams: $scope.selectedVal }); 

然後接受它:

$scope.$on('selectedParams', function(event, args) { 

    var mySelectedParam = args.selectedParams; 
    // do what you want to do 
});