gpt4 book ai didi

javascript - Angular js - 未在 $routeChangeStart 中获取最后插入的记录

转载 作者:行者123 更新时间:2023-12-03 09:00:17 24 4
gpt4 key购买 nike

我使用 $routeChangeStart 将授权用户重定向到特定网址,并阻止用户访问特殊网址。

我还有一些动态生成的页面,我想通过 page-slug 访问该页面。因此,我调用 $routeChangeStart ,并在此事件中调用 $http 服务,该服务从数据库获取所有页面 slugs 并允许用户重定向到它。

发生了什么,当我从后端添加新页面并尝试查看它时,页面slug不会从数据库中检索最后插入的页面记录,并且默认情况下该路由将我带到主页。

当我完成刷新应用程序(F5)时,就会找到路线。

我的示例代码在这里。

我的页面路线:

$routeProvider.when('/:pageSlug',{ templateUrl:BASE_URL+'singlePage', controller:"pageController"});

我的$routeChangeStart:

app.run(function($rootScope, $location, loginService, PageUrlService, $route)
{
var $promise = PageUrlService.getPageUrls();

$rootScope.$on('$routeChangeStart', function(){

var pageRoutes = [],
after = [],
before = [],
right = [],
general = [];


$promise.then(function(res){
var data = res.data;

if(data.status == "found"){
angular.forEach(data.content, function(value, key){
pageRoutes.push("/"+ value.pageUrl);
});
}

if($rootScope.isLoggedIn == true)
{
// route allow if found in "pageRoutes"
}
else
{
// route allow if found in "pageRoutes"
}
});
});
});

最佳答案

app.run 在其生命周期中被调用一次。

这就是下面的代码被执行一次的原因。 var $promise = PageUrlService.getPageUrls();

将上述代码放入routeChangeStart中。

关于javascript - Angular js - 未在 $routeChangeStart 中获取最后插入的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32325306/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com