2016-11-20 3 views
0

Ich versuche, andere Seite auf Winkel zu umleiten, nachdem die Daten zu API veröffentlichen, ich diesen Code eingegeben:

$scope.Proceed = function() { 
     DataService.InsertPerson($scope.p) 
     .then(function success(data) { 
      $scope.p.ID = data.data; 
      var url = "http://" + $window.location.host + "/#/show/person/"; 
      $window.location.href = url + data.data; //adding ID to url 
     }); 
    }; 

die Seite korrekt umgeleitet, aber Winkel wirft einen Fehler:

Error: $rootScope:infdig Infinite $digest Loop

I $ Lage, aber gleiche Ergebnisse tryed.

vielen Dank für Ihre Zeit

+0

welchen Router verwenden Sie? – charlietfl

Antwort

1

Anstatt eine Umleitung mit $window.location.href tun Sie AngularJS $location, um die URL zu ändern und fügen Sie ihn in der Geschichte Stack verwenden:

$location.url('/show/person/' + data.data); 

Oder:

$location.path('/show/person/' + data.data); 

Beide Methoden sind getter/setter:

  • $location.url gibt die gesamte URL nach dem Schrägstrich, einschließlich Suchzeichenfolge und Parameter Pfad ändern, Such- und hash, wenn mit dem Parameter und das Rück $location genannt.
  • $location.path gibt den Teil der URL zurück, nachdem der Schrägstrich keine Suchzeichenfolgeparameter enthält, und ändert den Pfad, wenn er mit Parameter aufgerufen wird, und gibt $location zurück.
+0

Nach dem Ändern des Codes und der Verwendung von $ location, Winkelroute zur Standardseite. –

+0

Überprüfen Sie, ob die neue URL wohlgeformt ist und in Ihren Routen vorhanden ist, und überprüfen Sie, ob das von der Erfolgsfunktion zurückgegebene 'data.data' ein gültiger gültiger Wert ist. –

+0

Siehe, dass ich'/#/show/verwendet habe Person/'ähnlich wie Sie .. Versuchen Sie mit:' $ location.url ('/ show/person /' + data.data); ' –