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;
}
}
我不知道我是否要重新发明轮子,但页面在不重新加载的情况下无法导航
解决方案
我的建议是使用 uirouter ( https://github.com/angular-ui/ui-router/wiki )。
在您的应用程序中注册模块
角度 .module('myApp', [ ... 'ui.router', ... ])
在配置函数中配置 $stateProvider
.config( 函数 ( $stateProvider, ... ) {
$stateProvider
.state('main.login', {
url : "/",
views : {
"login" : {
controller : 'LoginCtrl',
templateUrl : 'views/login/login.html'
}
}
})
...
成功登录后,您可以使用 $state 服务来更改应用程序的状态(即页面),显然无需重新加载页面。
$state.go('main.whereverRegisteredState', {some: data});
我不会向你解释应用程序设置、控制器、视图或服务注入,只需遵循官方文档即可。
希望能帮助到你
推荐阅读
- kubernetes - Kubectl 仅获取工作节点
- javascript - React:如果 prop 的一部分不可用,有没有办法避免类型错误?
- java - 在自定义注释处理器中使用 Android SDK 类
- python - 导入功能时的错误消息 - 模块
- ios - 如何将此游戏代码转换为 Swift 4?
- java - 在回收站视图中添加项目
- macos - 在 mac high sierra 10.13.6 上安装 gcc 7.1 问题
- php - MySQL - 按不同标准对帖子/评论进行排序和分组
- iis - dotnet core 2.1 Web 应用程序 Windows 身份验证在 VS Code 中失败,但在 VS 2017 或部署的服务器上失败
- angular - Typescript 的通用枚举转换器到数组列表