我遇到了与 Backbone 可能存在的竞争情况。
当用户来回单击左侧的链接时,我最终会得到嵌套视图。
这通常发生在单击仍在加载视图时。
http://screencast.com/t/oLsZQga1
我可以做一些简单的事情来解决这个问题吗?我尝试过使用 _.debounce(),它在本地工作得很好,但是一旦我将它放入带有真实数据的测试环境中,我就会再次开始获得嵌套视图。
编辑:一些代码可能会有所帮助;)。
这是左侧两个链接的视图:
events:
"click" : "close"
initialize: =>
super
@close = _.debounce @_close, 1500, true
_close: (e) =>
e.preventDefault() if e
e.stopPropagation() if e
id = @model.get('_id') || @model.get('id')
@publishEvent "!router:route", "fan/#{id}"
这是右侧结果的视图:
attach: ->
super
$(".fanViewButton").parents("li:first").addClass("active")
@initSubViews()
@updateFanHistory()
initSubViews: ->
@subview("memberDataView", new GeneralInfo({container:'div.left .row-fluid', model:@model}))
@subview("fanHand", new FanHand({container: @$el.find('.fanHandContainer'), model: @model}))
@subview("gatherInfo", new GatherInfo({container: @$el.find('.gatherInfoContainer'), model: @model}))
@subview("fanScores", new FanScores({container:@$el.find('.center .row-fluid'), model : @model}))
@setHeight()
如果您需要更多东西,请告诉我,因为我对 Backbone 非常陌生。
感谢大家 :)。