2016-03-30 75 views
0

在我的代碼location.path(「#/」)不工作我試了很多,但我不明白爲什麼它不工作。有一個簡單的邏輯,即成功註冊彈出窗口關閉後,通知欄插件將看到通知。location.path(「#/」)不工作

自從4小時後,我感到驚訝。

Signup

(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中,如下所示:http:// localhost:1000 /#/#%2F –

+0

注意我使用'/'而不是'#/'。 –

回答

0

嘗試如下

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

這裏的另一篇文章,你可能會讀更好地理解Angular $location.path not working

+0

我讀過,它試過但它不工作。我幾乎適用於所有方面。 –

+0

Ashraful:當它嘗試相同的代碼時出錯。錯誤:[$ rootScope:inprog] $摘要已在進行中。 我正在使用stateprovider,我想重新加載整個頁面。 –

+0

如果你使用$ stateProvider(ui-router not ngRoute),你應該使用$ state.go('/')替換$ location.path('/')。 同樣,您還沒有注入並使用ngRoute/ui-router作爲app.module和controller中的依賴項。請澄清您是否使用ngRoute或ui-router。 –

0

$location doc

It does not cause a full page reload when the browser URL is changed. To reload the page after changing the URL, use the lower-level API, $window.location.href.

所以,請嘗試:

$window.location.href = '/'; 
相關問題