gpt4 book ai didi

angularjs - 当我使用 ui-router 仅查看父状态时,如何自动转到最后选择的子状态?

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

我进行了以下设置:

   var admin = {
name: 'admin',
url: '/admin',
views: {
'menu': {
templateUrl: '/Content/app/admin/partials/menu.html',
},
'content': {
templateUrl: function (stateParams) {
var content = localStorage.getItem('ls.adminPage');
if (content != null && content != "") {
return '/Content/app/admin/partials/' + content + '.html';
} else {
return '/Content/app/common/partials/empty.html';
}
}
}
}
};

var adminContent = {
name: 'admin.content',
parent: 'admin',
url: '/:content',
views: {
'content@': {
templateUrl: function (stateParams) {
localStorage.setItem('ls.adminPage', stateParams.content);
return '/Content/app/admin/partials/' + stateParams.content + '.html';
},
}
}
}

发生的情况是,当用户之前访问过 /admin/xxx 页面时,下次选择 /admin 时,它将再次返回 /admin/xxx 页面。

但是,从视觉上看,这是一团糟,因为浏览器 URL 显示为 /admin 并且状态设置不正确。

是否有某种方法可以存储子状态,然后将其保存下来,以便当用户浏览到父状态时,它将转换到最后一个已知的子状态,并在浏览器中显示该 URL?

最佳答案

这样做:

myapp.config(function($urlRouterProvider){

$urlRouterProvider.when('/admin', function() {
var content = localStorage.getItem('ls.adminpage');
if ( content != null && content != "" ) {
return "/admin/" + content;
}
else {
return false;
}
});

});

查看这个plunkr:http://plnkr.co/edit/oEXZpO

编辑:两个月后重新审视这个答案,我意识到它的解释有点短(至少可以说):所以这实际上会将请求“重定向”到最后选择的管理页面,以便它显示在网址。我更新了 Plunkr 并添加了显示当前文档 URL 的功能。因此可以看到,如果这是之前访问过的管理子页面,则单击/admin/后,URL 实际上将是/admin/12345。

关于angularjs - 当我使用 ui-router 仅查看父状态时,如何自动转到最后选择的子状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18945608/

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