我有一个单页JQM应用程序 - 所有JQM“页面”都在一个文档中:
<div>
@RenderPage("Views/login.cshtml")
@RenderPage("Views/page1.cshtml")
@RenderPage("Views/page2.cshtml")
</div>
我如何禁用默认显示JQM页面,目前恰好是login.cshtml,所以我可以在用户登录后手动调用转换方法从历史记录中删除登录页面?等式这就是我想在初始文档加载时手动调用的内容:
$.mobile.changePage('#login-page', { reverse: false, changeHash: true });
或者,是否可以在没有changePage
调用的情况下将“reverse”属性设置为false?
答案 0 :(得分:1)
如果您愿意,我可以为您提供客户端解决方案。
基本上,您使用我的旧示例:http://jsfiddle.net/Gajotres/3PhKZ/来防止在未满足某些条件的情况下转换页面。此时,您可以使用changePage函数在任何其他页面转发该用户。
此解决方案在任何情况下都可以使用,因为它会在每次页面转换期间触发,如果下一页在您的案例登录页面中,它将查看条件并执行您想要的任何操作。您可以允许该转换,完全阻止它或简单地重定向到另一个页面:
$(document).on('pagebeforechange', function(e, data){
var to = data.toPage,
from = data.options.fromPage;
if (typeof to === 'string') {
var u = $.mobile.path.parseUrl(to);
to = u.hash || '#' + u.pathname.substring(1);
if (from) from = '#' + from.attr('id');
if (from === '#index' && to === '#second') {
alert('Can not transition from #index to #second!');
e.preventDefault();
e.stopPropagation();
// remove active status on a button, if transition was triggered with a button
$.mobile.activePage.find('.ui-btn-active').removeClass('ui-btn-active ui-focus ui-btn');;
}
}
});