我正在使用带有backbonejs的jqueryMobile。 任务:包含电子邮件和密码字段的登录表单。填写表单并使用3个链接重定向到相同的表单:
问题:当点击退出时,我希望将其重定向回登录表单(同一页面)并显示消息 - “已成功注销。”
我做了什么: 在view.js中:$('#logoutClick').click(function() {
console.log("hi");
this.collection = new Fan();
this.collection.logoutFan();
window.location.reload(true);
});
在myController中(cakephp):
public function mobile_logout() {
$status = true;
$event = array();
$data = array();
$this->Auth->logout();
$this->Session->setFlash('Successfully Logged out', 'flash_failure');
$this->Session->delete('Auth.Fan');
$this->set('status',$status);
$this->set('output',$data);
$this->render('/Layouts/json/mobile',false);
}
现在当我点击注销时,页面被重定向但是没有呈现消息。(我想在获取响应之前页面会重新加载)。 当我检查chrome中的元素时,我可以看到没有可用预览的logout.json(来自控制器的json响应不存在)。 我该如何解决这个问题?
答案 0 :(得分:0)
不要重装。使用重定向: window.location ='yourloginpage?msg = success';
答案 1 :(得分:0)
由于jQuery mobile模拟了一个大网页,因此您无法访问其他网页。使用:
window.location.reload(true);
打开一个新视图,jQM再次开始工作(它下载所有头文件等)。它的工作方式类似于rel =“external”的链接
如果你想让jQM在这种情况下工作,你必须将所有标题添加到你的html文件中,你应该知道你不能访问上一页,因为它是从DOM中删除的。
我做了一些不同的方式。它并不完美:)尝试使用$.mobile.changePage("./newpage.html)
重定向到另一个页面。在此新页面中添加事件pageinit
并重定向回到开始页面。