Подтвердить что ты не робот

Перенаправление на другую страницу после POST с помощью AngularJS

После поиска и не придумывания решения я отправляю этот фрагмент кода для некоторой помощи.

$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');
    });
}

После успешной публикации я хотел бы перенаправить на другую страницу. $location.path не выполняет этого. Я пробовал $scope.apply(), поскольку некоторые другие имели успех с этим. Я что-то упускаю или не понимаю, для чего используется $location? Код удаляется.

4b9b3361

Ответ 1

Должно быть что-то прослушивание этого изменения пути, например, $routeProvider. Это тот случай?

Если вам нужна полная перезагрузка страницы на этот другой (серверный) маршрут, вы можете попробовать $window.location.href.

Ответ 2

Не забудьте добавить зависимость к контроллеру:

                                                       |-- 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');
  });
});

Ответ 3

в вашем контроллере добавьте $location. как это Пример: app.controller('yourController', функция ($ scope, $location, $http и т.д.) то на вашем $http должно быть так.

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

но убедитесь, что вы должны добавить дополнительное место в свою конфигурацию $routeProvider. что-то вроде:

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

вот оно. вы знаете, о чем я говорю.

Ответ 4

.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');
            }
            });
            }

            }]);

мой код похож на это, я получаю только ответ json после страницы регистрации, чтобы он не переходил на другую страницу