2013-03-19 25 views
0

首先我讀了Integrating Devise with Backbone.js。但主要的是 - 我不使用Devise。
現在我已經創建了用於註冊的骨幹視圖&身份驗證(骨幹網連接到rails以支持後端)。我想知道的是 - 有沒有存儲信息的任何可能性是用戶登錄或不是&你在哪裏建議存儲它,或者當我需要信息時,我將不得不連接到後端?如何將軌道#會話集成到主幹中更好

更新1
我試圖在全局變量,其在路由器(主鏈)中聲明

class Notes.Routers.Articles extends Backbone.Router 
    currentUser: null 

登錄後存儲用戶在一個視圖

@currentUser = response // it's a response object from ajax call 
Backbone.history.navigate("articles",true) 

,並在目標視圖

console.log @currentUser 

它不起作用,有什麼建議嗎?

回答

1

查看「gon」gem - 它提供了在JavaScript環境中訪問rails會話信息以及其他任何你需要從rails導入的信息。我曾經在一個項目中和客戶一起使用過它,它工作得很好。

如果你不想這樣做,那麼「簡單」的方法就是直接將渲染的會話信息轉儲到JavaScript代碼中。

例如,你可以做這樣的事情在一個視圖模板:


window.currentUser = { 
    name: "" 
}; 

,這將讓您使用currentUser.name在你的JavaScript代碼的任何地方。

+0

請參閱我的更新 – Elmor 2013-03-20 09:14:17

+0

不要將它存儲在您的路由器中。這迫使您始終通過您的路由器實例訪問,這是您運行的問題。你試圖訪問一個變量,這個變量在你訪問範圍內不存在。將其存儲在全局「窗口」或應用程序的根名稱空間對象中,但絕不會是像路由器這樣的特定類型的實例 – 2013-03-20 13:12:31