Angular JS页面加载触发无限页面加载循环
Angular JS page load triggers infinite page load loop
我有一个angular js应用,它使用了ngRoute。对应用程序的重定向来自父网站,父网站会自动将一些查询参数附加到URL中。这会触发angular js应用程序的无限循环。
父网站准备的url就像
http://website.com/angularapp/?redirect=bla&code=anotherbla
Angular JS接受这个URL并像下面这样修改它,至少我是这么看到的。
http://website.com/angularapp/?redirect=bla&code=anotherbla#/home
然后页面继续重定向到相同的链接。我认为原因是因为ngRoute,因为当我创建一个没有ngRoute的示例应用程序时,它工作得很好。
这是我的main.js
var module = angular.module('product', []);
angular.element(document).ready(function($http) {
// There are bootstrapping functions which checks for SSO in keycloak here
});
我的ngRoute如下
module.config(function($routeProvider) {
$routeProvider.when('/home', {
templateUrl : 'pages/panels.html',
controller : 'PanelCtrl',
reloadOnSearch: false
}).otherwise({
redirectTo : '/home'
});
我认为问题是由于ngRoute中的otherwise
,它不断重路由到相同的位置。
修复
- 我尝试在路由配置中添加reloadOnSearch: false
- 美元路线。引导完成后立即重新加载
- $location.path('/home')更改url的路径
- document.location。href来改变url的路径,JS的方式
但是他们都没有解决问题。
我如何停止这个重新加载问题?我是否可以添加一个过滤器,在angular应用中删除url中的任何查询参数?如果是,你能指导我怎么做吗?
谢谢
您可能希望仅在Keycloak初始化之后引导应用程序。你可以使用他们的"AngularJS"的例子作为基础,但基本上,使用这个:
var auth = {};
angular.element(document).ready(function ($http) {
var keycloakAuth = new Keycloak('keycloak.json');
auth.loggedIn = false;
keycloakAuth.init({ onLoad: 'login-required' }).success(function () {
auth.loggedIn = true;
auth.authz = keycloakAuth;
auth.logoutUrl = keycloakAuth.authServerUrl + "/realms/demo/tokens/logout?redirect_uri=/angular-product/index.html";
module.factory('Auth', function() {
return auth;
});
angular.bootstrap(document, ["product"]);
}).error(function () {
window.location.reload();
});
});
https://github.com/keycloak/keycloak/blob/master/examples/demo-template/angular-product-app/src/main/webapp/js/app.js L23
相关文章:
- 我如何发送AJAX请求的内容是通过无限滚动加载的
- 无限滚动:从数据库加载所有数据并滚动以显示更多
- 等到无限滚动完成加载 - Javascript
- Bxslider预加载程序在没有图像的情况下以无限循环运行
- 为什么无限滚动总是加载相同的图像
- jQuery创建无限滚动的加载更多按钮
- 无限ajax滚动未加载javascript
- 我怎么能用Codeigniter在可滚动的部分创建一个无限向下滚动的网格加载程序呢
- 如何将我的脚本应用于通过无限滚动加载的图像
- jQuery 无限滚动的加载过早触发
- 我们可以在不将其加载到无限可滚动网页中的情况下访问 DOM 元素吗?
- 预加载谷歌DFPiframe,以防内容无限
- 保罗爱尔兰无限滚动一次加载 2 页
- AJAX 无限滚动以预加载内容
- 我的脚本只运行一次,我想要无限次而不重新加载 html 页面
- 加载内容时阻止无限滚动跳转到页面末尾
- 选择2-无限滚动不加载带有远程数据的下一页
- AngularJS无限滚动未加载
- 无限滚动而不加载图像
- 改变内容加载无限滚动