我想知道如何在backbone.js应用程序中跟踪当前登录的用户,页面上的大多数视图都需要知道用户是否登录或现在以及哪个用户登录。最好的方法是什么实现这个?
我在服务器上有会话管理,但我怎么知道我在我的骨干应用程序中处理的是哪个用户,我怎么知道他是否注销了这就是问题
另外,我如何知道用户已使用另一个选项卡等注销?应该有一种通用的方法来处理这些东西,就像我们之前在 rails 中使用过滤器来管理这些东西一样。在前端使用什么方法来实现相同的。
我目前正在做的是,当我从服务器端设置的主页加载时呈现 html 隐藏字段#current_user_id,我的主干应用程序读取并设置如下变量
window.MyApp =
Models: {}
Collections: {}
Views: {}
Routers: {}
currentUser: null
init: ->
@currentBusiness = $('#current_business').val()
new MyApp.Routers.Businesses
Backbone.history.start()
$(document).ready ->
MyApp.init()
然后我的路由器设置一个 ShowView 然后设置页面上的其他子视图
class MyApp.Routers.AppRouter extends Backbone.Router
routes:
'': 'show'
show: ->
user = new Vocallocal.Models.user id: Vocallocal.currentBusiness
Vocallocal.currentBusiness = business
new Vocallocal.Views.BusinessesIndex model: business
business.fetch()
这是主要的 ShowView
class MyApp.Views.ShowView extends Backbone.View
el: '#main'
template: JST['users/home']
initialize: ->
@model.bind 'change', @render, @
@details = new Vocallocal.Views.UserDetails model: @model
@logo = new Vocallocal.Views.UserLogo model: @model
@managePhotos = new Vocallocal.Views.ManagePhotos model: @model
render: ->
console.log('change has occured')
@
上面的代码和设置是否有意义。如果我应该对上述内容进行任何更改,我正在寻求一般建议。
感谢您的宝贵意见
- 投标