backbone.js アプリで現在ログインしているユーザーを追跡する方法を知りたいと思っていました。ページのほとんどのビューは、ユーザーがログインしているか、現在ログインしているか、どのユーザーがログインしているかを知る必要があります。最善の方法は何ですか?これを達成しますか?
サーバー上でセッション管理を行っていますが、バックボーン アプリでどのユーザーを扱っているかを知る方法と、そのユーザーがログアウトしたかどうかを知る方法は、それが問題です。
また、ユーザーが別のタブなどを使用してログアウトしたことをどのように知ることができますか? このようなものを処理するための一般的な方法が必要です。これは、以前にレールでフィルターを使用して管理していたようにです。フロントエンドで同じことを達成するために使用される方法。
私が現在行っていることは、ホームページが読み込まれるときに、サーバー側からレンダリングされた 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')
@
上記のコードを実行し、セットアップは理にかなっています。上記に変更を加える必要がある場合、一般的なアドバイスを探しています。
貴重なご意見ありがとうございます
- 入札