webentwicklung-frage-antwort-db.com.de

Danach auf eine andere Seite umleiten POST mit AngularJS

Nachdem ich gesucht und keine Lösung gefunden habe, poste ich dieses Code-Snippet, um Hilfe zu erhalten.

$scope.createAddress = function () {
    $http({
        method: 'POST',
        url: '/addressBook/api/Person',
        data: $scope.person,
        headers: {
            'Content-Type': 'application/json; charset=utf-8'
        }
    }).success(function (data) {
        $location.path('/addressBook');
    });
}

Nach erfolgreichem Posting möchte ich auf eine andere Seite umleiten. $ location.path schafft dies nicht. Ich habe $ scope.apply () ausprobiert, da einige andere damit Erfolg hatten. Vermisse ich etwas oder verstehe ich nicht, wofür $ location verwendet wird? Der Code wird getroffen.

13
Dennis Kiesel

Es sollte etwas zu dieser Pfadänderung zu hören sein, wie ein $routeProvider. Ist das der Fall?

Wenn Sie eine vollständige Seite neu laden möchten, versuchen Sie $window.location.href.

10
Jair Trejo

Denken Sie daran, die Abhängigkeit in den Controller einzuspeisen:

                                                       |-- inject!
angular.module('myApp.controllers', []).               v
controller('AddressController', function ($scope, $location, $http) {
  $http({
    method: 'POST',
    url: '/addressBook/api/Person',
    data: $scope.person,
    headers: {
        'Content-Type': 'application/json; charset=utf-8'
    }
  }).success(function (data) {
    $location.path('/addressBook');
  });
});
22
Sgnl

fügen Sie in Ihrem Controller die Position $ hinzu. so Ex: app.controller ('yourController', Funktion ($ scope, $ location, $ http, etc ...) Dann sollte Ihr $ http so sein.

$http({.... }).success(function(response) { $location.path('/your path')})

stellen Sie jedoch sicher, dass Sie Ihrer $ routeProvider-Konfiguration einen zusätzlichen Speicherort hinzufügen müssen. so etwas wie: 

app.config(['$routeProvider', 
   function($routeProvider) { 
   $routeProvider.
     when('/yournewlocation', {
      templateUrl: 'yourTemplate/yourpage'
   })
  }
])

das ist es. Nun, Sie wissen, wovon ich rede.

1
Joshua Fabillar
.controller('regCtrl', ['$scope','$http', function($scope,$http) {

        $scope.submit = function() {
            alert("vf");

            $http.post("http://localhost:3000/insert",function(response,$location){
                if(response!= null){
                $location.path("/login");
            }
            else{
                $state.go('/register');
            }
            });
            }

            }]);

mein Code ist wie dieser. Ich bekomme nur Json-Antwort, nachdem die Registerseite nicht zu einer anderen Seite navigiert wurde

0
user8747664