2016-06-10 15 views
1

ich eine GET-Anfrage wie folgt machen:AngularJS Sendung kehrt undefiniert

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


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

Ich möchte auszustrahlen, was an den Hauptcontroller mein Erhaltungs-Anforderung zurück, und ich tue etwas wie folgt aus:

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

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

aber es gibt undefined zurück. Fehle ich etwas? Habe ich die Nachricht nicht korrekt gesendet?

Nachdem ich meine Nachricht ausgesendet habe, möchte ich mein selectedVal in einem anderen Controller verwenden. Ich versuchte es so:

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

Ist das ok? Benutze ich die $ watch Funktion richtig?

Antwort

0

verwenden:

$ rootScope $ Broadcast ('selectedParams', {Daten: $ scope.selectedVal}).

Erster Parameter ist Ereignisname. Zweitens sind Daten, die dieses Ereignis bringt.

Blockquote $ Broadcast (Name, Args); Sendet einen Ereignisnamen nach unten an alle untergeordneten Bereiche (und deren untergeordnete Elemente), der die registrierten $ rootScope.Scope-Listener benachrichtigt.

0

Live Übertragung wie folgt aus:

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

Und dann erhalten:

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

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