2016-03-30 24 views
0

私のコードでlocation.path( "#/")が動作しませんでした。私はたくさん試しましたが、なぜ動作しないのか分かりません。成功したサインアップ後にポップアップが閉じ、通知バープラグインに通知が表示されるという単純なロジックがあります。location.path( "#/")が動作していません

私はこれを4時間から打ちました。

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

を次のように

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:あなたの答えに感謝します。しかし、それは動作していません。 http:// localhost:1000 /#/#%2F –

+0

注意「#/」の代わりに「/」を使用しました。 –

答えて

0

てみここでは、$location docからより良く理解Angular $location.path not working

+0

私はそれを読んで試しましたが、うまくいきません。私はほとんどすべての方法を適用しました。 –

+0

Ashraful:同じコードを試したときにエラーが発生しました。エラー:[$ rootScope:inprog] $ digestがすでに進行中です。 私はstateproviderを使用しています。私はページ全体をリロードしたいと思います。 –

+0

$ stateProvider(niRouteではなくui-router)を使用している場合は、$ location.path( '/')を$ state.go( '/')に置き換える必要があります。 また、nogRoute/ui-routerをapp.moduleとcontrollerに依存するように注入して使用していません。 ngRouteまたはui-routerを使用しているかどうかを明確にしてください。 –

0

のために読むかもしれない別のポストです:

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 = '/'; 
関連する問題