2017-05-03 1 views
0

in wechselnd Ich mag einige Daten nach einem $ window.locationLive Übertragung nach url AngularJS

Also in meiner ersten js Datei übertragen, wo ich die searchSelect Funktion Ich habe auszuführen;

$scope.searchSelect = function (item) {   
    var url = "http://" + $window.location.host + "/import.aspx?key=IMPORT_" + item.type; 
    $window.location.href = url; 
    $scope.$broadcast('searched', {type: item.type}) 
} 

Und in einer zweiten js Datei ich habe:

$scope.$on('searched', function (event, args) { 
    console.log(args.type);   
}) 

Aber die console.log erscheint nicht.

Wie könnte ich diese Sendung nach der URL-Standortänderung tun? Dank

+0

es die URL ändern, es funktioniert, ich auf der neuen Seite bin, aber ich die Sendung nicht fangen –

Antwort

1

Sie müssen zwei Änderungen vor:

  1. Verwendung Broadcast bevor URL zu ändern.
  2. Verwenden Sie Rootscope für Broadcast.

dh Verwendung dieser Aussage:

$rootScope.$broadcast('searched', {type: item.type}) 

vor diesem

$window.location.href = url; 
+0

funktioniert nicht für mich:/Ich legte 'Debugger;' im $ scope. $ on ... aber nichts passiert –

+1

Ich denke, es kann ein Problem mit der Controller-Vererbung sein. Sie können versuchen, '$ rootScope. $ On' zu verwenden, um auf das Broadcast-Ereignis zu warten. –

+0

Großartig war es offensichtlich! Danke ! –