2014-02-15 84 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/有關健壯的信息....他寫了牽線木偶。 –

相關問題