location.path («# /») не работает

0

В моем коде location.path("#/") не работает, я много пробовал, но я не понимаю, почему он не работает. Существует простая логика, которая после успешного всплывающего окна регистрации закрывается, а плагин уведомлений должен видеть уведомление.

Я ударил в этом с 4 часов.

Зарегистрироваться

    (function () {
        'use strict'
        /*
         * Signup Controller
         * @param {$scope} Object
         * @return
         */
        function SignupCtrl($scope, $location, $window, $timeout, UserService, notifications) {
            //$scope.captchaError=false;
            //$scope.passwordPattern = '((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{8,})';
            $scope.doRegistration = function () {
                console.log("form validation status:" + $scope.frmSignup.$valid);
                if (true === $scope.frmSignup.$valid) {
                    console.log("validation successfully executed");
                    UserService
                            .register($scope.user)
                            .error(function () {
                                angular.element('#btnCancelSignup').triggerHandler('click');
                                notifications.showError({
                                    message: 'Ooops! there is error occured, please try again.',
                                    hideDelay: 1500, //miliseconds
                                    hide: true // boolean
                                });
                                $location.path("#/");
                            })
                            .then(function (res) {
                                if (res.data.status === 1) {
                                    console.log("success in registration");
                                    angular.element('#btnCancelSignup').trigger('click');
                                    notifications.showSuccess({
                                        message: 'Please check your email to complete registration.',
                                        hideDelay: 1500, //miliseconds
                                        hide: true // boolean
                                    });
                                    $location.path("#/");
                                    if(!$scope.$$phase) $scope.$apply();

                                }
                                Recaptcha.reload();
                            });
                }
            }
        }

        angular
                .module('AppWhizbite')
                .controller('SignupCtrl', ['$scope', '$location', '$window', '$timeout', 'UserService', 'notifications', SignupCtrl]);
    }());
  • 0
    Попробуйте изменить хеш вместо пути. $location.hash('/')
  • 0
    @LuisMasuelli спасибо за ваш ответ. но это не работает Он добавляется в URL следующим образом: localhost: 1000 / # / #% 2F
Показать ещё 5 комментариев
Теги:
mean

2 ответа

0

От $ location doc:

Это не приводит к полной перезагрузке страницы при изменении URL-адреса браузера. Чтобы перезагрузить страницу после изменения URL-адреса, используйте API нижнего уровня, $ window.location.href.

поэтому постарайтесь:

$window.location.href = '/';
0

Попробуйте следующее

$scope.$apply(function() { 
  $location.path('/');
});

Вот еще одно сообщение, которое вы могли бы прочитать для лучшего понимания. Угловое $ location.path не работает

  • 0
    Я прочитал, и он попробовал это, но это не работает. Я применил почти все способы.
  • 0
    Ашрафул: Я получил ошибку, когда попробовал тот же код. Ошибка: [$ rootScope: inprog] $ digest уже выполняется. Я использую Stateprovider, и я хотел бы перезагрузить всю страницу.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню