【问题标题】:Disable routing on page refresh in angular js在angular js中禁用页面刷新时的路由
【发布时间】:2017-07-31 08:55:32
【问题描述】:

我有一个这样的路由提供者

app.config(function ($routeProvider, $locationProvider){
$locationProvider.hashPrefix('');


$routeProvider
.when('/', {
    templateUrl: 'login.html',
    controller: 'loginCtrl'
})
.when('/home', {
    resolve:{
        "check":function($location, $rootScope){
            if(!$rootScope.loggedIn){
                $location.path('/');
            }
        }
    },
    templateUrl:'home.html',
    controller: 'homeCtrl'
})
.otherwise({
    redirectTo: '/'
   });
});

login.html 是我的应用程序的第一页。

但是在登录后,重新加载任何最终会出现在 login.html 页面中的页面

我希望其他页面在刷新时保持活动状态,并将 login.html 作为我的打开页面

【问题讨论】:

    标签: html angularjs angular-routing route-provider


    【解决方案1】:

    每次重新加载页面都会重新创建 $rootScope。因此,您需要将登录详细信息存储在任何存储中,例如 localstorage。

    http://blog.teamtreehouse.com/storing-data-on-the-client-with-localstorage

    此链接可能会对您有所帮助。成功登录后,您需要存储数据。并在解析 url 时获取存储的数据并验证使用。

    【讨论】:

    • 感谢您的评论,如果有任何工作示例链接?请
    • youtube.com/… 这可能会有所帮助
    • @RavisankarR 如果对您有用,请将其标记为答案
    • 它是角度 2,我使用的是角度 1
    • 是的,但使用本地存储或会话存储将是相同的。
    【解决方案2】:
    scotchApp.config(function($stateProvider, $urlRouterProvider, $compileProvider, $locationProvider) {
            $locationProvider.html5Mode(true);
            $compileProvider.debugInfoEnabled(false);
            // route for the home page
    
            $stateProvider
                .state('home', {
                    url: '/home',
                    templateUrl : 'pages/home.html',
                    controller  : 'mainController'
                })
    
                // route for the about page
                .state('about', {
                    url: '/about',
                    templateUrl : 'pages/about.html',
                    controller  : 'aboutController'
                })
    
                // route for the contact page
                .state('contact', {
                    url: '/contact',
                    templateUrl : 'pages/contact.html',
                    controller  : 'contactController'
                });
    
                $urlRouterProvider.otherwise('home');
        });
    

    试试这样的。

    【讨论】:

    • 在该链接中,如果您重新加载关于页面,它将重定向到主页。
    • 下载并签入本地。它不是重定向到家
    • 是的,但这只是哈希标签路由
    猜你喜欢
    • 2017-10-06
    • 1970-01-01
    • 2019-01-01
    • 1970-01-01
    • 2020-07-10
    • 1970-01-01
    • 2018-02-02
    • 1970-01-01
    • 2022-01-05
    相关资源
    最近更新 更多