2016-06-10 51 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 
});