0

我有一个单页 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调用的情况下将“反向”属性设置为 false?

4

1 回答 1

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');;
        }  
    }
});
于 2013-05-22T10:32:40.630 回答