2014-02-15 119 views
0

更新: 在执行Rob Sedgwick的以下建议之后,很明显重定向仅在用户手动“F5”刷新浏览器(Chrome)时才起作用。我需要实现的是这会在代码中自动发生,因此重定向发生时用户不必进行热刷新。感谢您对最后一部分的帮助。如何成功登录后重定向用户?

目前ManageTodosView从我的理解是用户登录后的第一个操作。它打印一份由用户设置的项目列表。一个工作示例可以在这里找到http://parseplatform.github.io/Todo/和代码是https://github.com/ParsePlatform/Todo

我正在使用的代码来真正让用户登录工作,我不担心剩下的代码的输出是什么,因为长期计划将删除它,暂时它有助于保持在适当的位置,以显示应用程序正常运行。

我使用this code作为构建Web应用程序的基础。目前,一旦用户登录,它们将显示在同一页面上的数据。

我希望能够改变这种情况,以便在用户登录后将用户重定向到不同的页面,然后将信息显示给他们。

这样做的原因是,索引页只是一个登陆/登录页面,我想他们重定向到与菜单更加结构化的HTML页面等

在JS代码,我只是把在一个重定向,如:

self.location="top.htm"; 

到这方面的代码?

// The main view for the app 
    var AppView = Parse.View.extend({ 
    // Instead of generating a new element, bind to the existing skeleton of 
    // the App already present in the HTML. 
    el: $("#todoapp"), 

    initialize: function() { 
     this.render(); 
    }, 

    render: function() { 
     if (Parse.User.current()) { 
     new ManageTodosView(); 
     } else { 
     new LogInView(); 
     } 
    } 
    }); 

我已经添加了JS代码到这个JSFiddle

+0

端午您好,感谢提,希望你能提供有关什么“manageTodosView”做更多资讯。你是否尝试完全更换它?这是一个单页面应用程序吗?提出申请的人会说什么?对于所有人来说,要了解应用程序的功能并不令人感到遗憾,总是很难。 –

+0

我试着根据你的意见进行更新,不知道它是否有帮助,如果你愿意进一步帮助,我们可以设立一个DM。 – Dano007

+0

嗨达诺,对不起进一步。与获取此https://github.com/ParsePlatform/Todo人员代码的工作方式不同,这不是一个常见的JavaScript问题。您是否考虑过要求作者提供协作/请求。这就是git的用途。除此之外,您需要发布更多关于此人代码内部工作的代码。例如。我们如何知道ManageTodosView()做了什么?对不起 –

回答

1

更新:

为了解决页面需要一个问题在重定向工作之前手动清新,插入

window.location.href="/someurl"; 

到todoe.js文件中的以下代码部分,并注释掉新的ManageTodosView();码。

 Parse.User.logIn(username, password, { 
     success: function(user) { 
window.location.href="user_home.html";   
//new ManageTodosView(); 
      self.undelegateEvents(); 
      delete self; 
     }, 


+0

欢呼,工作,目前唯一的事情是我需要刷新页面,然后才转到新的网址。有什么我可以放在Js自动刷新页面? – Dano007

+0

window.location.reload()是从服务器重新加载当前页面的命令。你不能两个都做。 (一旦你离开页面,就离开了脚本部分)在关于整个工作的问题上添加更多细节? –

+0

我按照建议更新了问题。 – Dano007

-1

尝试是这样的重定向用户

window.location = 'www.google.com' 
0
尝试

这一个也

window.open( 'URL', '_父');

0

我建议more robust template将Parse Todo示例与真实应用程序集成。 '木偶'在现实世界中提供了很多价值。

如果你花时间浏览应用程序的结构,然后看看'loginSuccess'函数(滚动到链接的最底部),它的相当直接的重定向。您可以使用路由器如图所示,或者你可以用木偶聚集事件,看起来像:

vent.trigger('header:loggedIn', _user); 

somewhere else in any module within the app.... 

    vent.on('header:loggedIn', function (user) { 
     that.setViewNew(user); 
      }); 

... 

     setViewNew : function (user) { 
    User = user;    
    var viewOptionsUser = { 
     collection : this.roleList, 
      events : { 
     'keypress #new-todo': 'createTaskOnEnter'}, 
     parentUser : User}; 

    this.headerRegion.show(new HeaderView(viewOptionsUser));   
    this.mainRegion.show(new RoleRoleListCompositeView(viewOptionsUser)); 
     } 
+0

干杯?rob Rowntree我会看一看,你能否让我知道你的意思是一个更“健壮”的模板? – Dano007

+0

derick bailey阅读任何内容... http://lostechies.com/derickbailey/2012/04/17/managing-a-modal-dialog-with-backbone-and-marionette/有关健壮的信息....他写了牵线木偶。 –