在导航到另一个页面时阻止浏览器的页面重新加载 - angularjs

时间:2018-05-18 12:45:16

标签: javascript angularjs

我正在尝试使用angularjs阻止页面重新加载。目前使用我的代码,页面不会重新加载,但它永远不会导航到另一个页面。这是代码

 $scope.login = function(){
        $scope.loading="loading";
        Service.authenticate($.param({
            username : $scope.username,
            password : $scope.password,
        }), function(res) {
            if(res !== undefined){
                if(res.success){


                    var windowElem = angular.element($window);
                      windowElem.on('beforeunload', function (event) {

                      event.preventDefault();
                      $(location).attr('href', '/dashboard');
                      })

                }else{

                    $scope.error = res.message;

                }
            }

我不知道我是否正在尝试重新发明轮子,但页面没有重新加载导航

1 个答案:

答案 0 :(得分:0)

我的建议是使用uirouter(https://github.com/angular-ui/ui-router/wiki)。

在您的应用中注册模块

角     .module(' myApp',[         ...         ' ui.router&#39 ;,         ...     ])

在配置功能

中配置$ stateProvider

.config(function($ stateProvider,...){

    $stateProvider
        .state('main.login', {
            url : "/",
            views : {
                "login" : {
                    controller : 'LoginCtrl',
                    templateUrl : 'views/login/login.html'
                }
            }
        })

...

成功登录后,您可以使用$ state服务更改 应用程序的状态(如此页面),显然没有重新加载页面。

$ state.go(' main.whereverRegisteredState',{some:data});

我不会向您解释应用程序设置,控制器,视图或服务注入,只需按照官方文档。

希望有所帮助