gpt4 book ai didi

angularjs - 如何知道 ui-router 中的下一个状态

转载 作者:行者123 更新时间:2023-12-01 01:03:19 25 4
gpt4 key购买 nike

当用户进入特定状态( /login )时,我会显示和隐藏模式,但如果用户进入 /register,我会将模式保留在后台来自 /login .

如果用户在/login然后转到 /register ,我希望登录模式保持打开状态,而如果用户在 /login然后转到另一个页面,我会让登录模式消失。

实际上我设置了Angular-ui-router $stateProvider这样:

app.config(function ($stateProvider, $urlRouterProvider, $locationProvider) {
$stateProvider
.state('home', {
url: "/",
templateUrl: "templates/home.html",
controller: 'HomeCtrl'
})
.state('login', {
url: "/login",
onEnter: function ($stateParams, $state, Modal) {
// * modalCtrl for Login
if (window.loginModal) {
window.loginModal.remove();
delete window.loginModal;
Modal.fromTemplateUrl('templates/user/login.html', function (modal) {
window.loginModal = modal;
loginModal.show();
});
} else {
Modal.fromTemplateUrl('templates/user/login.html', function (modal) {
window.loginModal = modal;
loginModal.show();
});
}
},
onExit: function ($stateParams, $state) {
if ( window.loginModal && /* condition like "!nextState.is('register')" */ ) {
window.loginModal.hide();
}
}
})
.state('register', {
url: "/register",
onEnter: function ($stateParams, $state, Modal, SlideBoxDelegate) {
// * modalCtrl for Register
if (window.registerModal) {
window.registerModal.remove();
delete window.registerModal;
Modal.fromTemplateUrl('templates/user/register.html', function (modal) {
window.registerModal = modal;
SlideBoxDelegate.update();
registerModal.show();
});
} else {
Modal.fromTemplateUrl('templates/user/register.html', function (modal) {
window.registerModal = modal;
SlideBoxDelegate.update();
registerModal.show();
});
}
},
onExit: function ($stateParams, $state) {
if ( window.registerModal ) {
window.registerModal.hide();
}
}
})
.state('not_found', {
url: "/not_found",
templateUrl: 'templates/not_found.html',
controller: 'NotFoundCtrl'
})
$urlRouterProvider.otherwise("/not_found");
$locationProvider.html5Mode(true);
})

有没有办法设置 condition like "!nextState.is('register')" ?

感谢您阅读:)

最佳答案

您可以收听$stateChangeStart并注意 to 的值参数 onExit 可以访问的某个位置函数,即可注入(inject)的值或服务。

将来,将有一个可注入(inject)的服务来代表转换本身,您将能够检查和操作此类事情。

关于angularjs - 如何知道 ui-router 中的下一个状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21068002/

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