我对骨干js有点困惑。
我有多个视图,它们根据会话采取不同的行动。IE。当我登录时,我的所有视图都将允许我点赞评论并关注问题,但是当我注销时,与用户活动相对应的所有其他视图都应提示登录表单。
所以,困惑是,当我登录时我应该如何通知其他视图,以便他们允许我做相应的活动。
我目前能够实现这一点,但我需要在登录后刷新页面,但骨干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()
我该如何做到这一点?
提前致谢