バックボーンjsと少し混乱しています。
セッションに基づいて異なる動作をする複数のビューがあります。すなわち。ログインすると、すべてのビューでコメントに「いいね!」を付けて課題をフォローできますが、ログアウトすると、ユーザー アクティビティに対応する他のすべてのビューでログイン フォームが表示されます。
したがって、混乱は、ログイン時に他のビューに通知して、対応するアクティビティを実行できるようにする方法についてです。
現在これを達成できていますが、ログイン後にページを更新する必要がありますが、バックボーン js の目的は達成されません。
ユーザーモデル: user.js.coffee
class window.User extends Backbone.Model
urlRoot: '/users'
isSignedIn: ->
Boolean(@get('remember_token'))
login: (attributes, options) ->
options.url = Root + '/sessions'
@save(attributes, options)
signup: (attributes, options) ->
options.url = Root + '/users/create'
@save(attributes, options)
サインイン ビュー: signin_view.js.coffee
class window.UserView extends Backbone.View
initialize: ->
_.bindAll(this, 'onSignedIn', 'onSignedUp', 'onCommented')
$(@el).show()
if @model.isSignedIn()
@showUserDetails()
else
Some code here
ユーザー詳細ビュー: user_detail_view.js.coffee
class window.UserDetailsView extends Backbone.View
initialize: ->
_.bindAll(this, 'onValidUser')
@model.on('change', @onValidUser)
if (@model.get('email'))
@onValidUser()
else
@model.fetch()
onValidUser: ->
@render()
render: ->
$(@el).show()
this.$(".name").text(currentUser.get('user')['first_name'] + ' ' + currentUser.get('user')['last_name'])
ここで、フォロービューにログインしたことを通知したいので、サインインフォームをもう要求しないでください。実際、ユーザーアクティビティに関連するすべてのビュー
フォロービューはこんな感じ
class window.FollowView extends Backbone.View
initialize: ->
$(@el).show()
どうすればこれを達成できますか?
前もって感謝します