【发布时间】:2014-07-10 00:21:40
【问题描述】:
如果我有一个绑定到 Backbone 对象事件的函数,是否会从另一个上下文阻止程序流触发该事件,直到绑定的函数执行完毕?
例如,待办事项的集合:
class App.Collections.Todos extends Backbone.Collection
model: App.Models.Todo
initialize: ->
@collection.on 'will_change:selected', @logUnselection, this
@collection.on 'change:selected', @logSelection, this
logUnselection: (todo) ->
for t in @collection.models
console.log "unselected!"
logSelection: (todo) ->
console.log "selected!"
单个待办事项的视图是这样的:
class App.Views.Todo extends Backbone.View
events:
'click': 'select'
select: (e) ->
@model.collection.trigger('will_change:selected', @model)
@model.set(selected: true)
单击待办事项时,无论logUnselection 中的代码执行多长时间,输出都会始终如下所示?
unselected!
unselected!
unselected!
unselected!
...
unselected!
selected!
或者在事件触发绑定函数时会继续执行,可能会导致:
unselected!
unselected!
selected!
unselected!
...
unselected!
【问题讨论】:
标签: jquery backbone.js coffeescript backbone-events