在检索异步数据时更正Backbone.js收集事件

在检索异步数据时更正Backbone.js收集事件,backbone.js,Backbone.js,我希望在从远程服务器异步加载集合时呈现视图。我有下面的收集课 class BusinessUnits extends Backbone.Collection model: BusinessUnit parse: (units) -> units 然后我的观点是我在这样做: load: (businessUnits) => @collection = businessUnits @collection.fetch() @render()

我希望在从远程服务器异步加载集合时呈现视图。我有下面的收集课

class BusinessUnits extends Backbone.Collection
  model: BusinessUnit

  parse: (units) ->
    units
然后我的观点是我在这样做:

  load: (businessUnits) =>
    @collection = businessUnits
    @collection.fetch()
    @render()
显然,将在提取完成之前调用render()

是否存在在获取集合时触发的backbone.js事件,或者我最好触发自己的事件

这似乎是一种非常常见的情况。人们是如何处理这种情况的?

我想这正是你想要的

“重置”(集合)-当集合的全部内容被替换时

这将在提取完成后触发

load: (businessUnits) =>
    @collection = businessUnits
    @collection.bind 'reset', => @render()
    @collection.fetch()
我想这就是你要找的

“重置”(集合)-当集合的全部内容被替换时

这将在提取完成后触发

load: (businessUnits) =>
    @collection = businessUnits
    @collection.bind 'reset', => @render()
    @collection.fetch()

+1,尽管您不需要创建匿名函数:
@collection.bind“reset”,@render
@BrianGenisio:这将不起作用,因为这样render将失去其作用域,不是吗?Collection.bind不会将作用域绑定到当前对象(或者是否会)?根据backbone.js文档“要在调用回调时为此提供上下文值,请传递可选的第三个参数:”:
@Collection.bind“reset”,@render,@
,假设render是使用
=>
而不是
定义的,它将在不传递上下文的情况下工作:
render:=>#呈现你的东西
好的,这是真的。我更喜欢使用主干定义的“实例”方法。UI事件是使用
delegateEvents
绑定的,因此它们也可以使用
->
(主干网负责)。如果这不是
render
方法,而是一个只包含事件处理程序的特殊函数,比如说
onBusinessUnitsLoaded
,那么我可以使用
=>
来定义它。我想这只是一个编码风格的问题。+1,尽管您不需要创建匿名函数:
@collection.bind'reset',@render
@BrianGenisio:这将不起作用,因为这样render将失去其作用域,不是吗?Collection.bind不会将作用域绑定到当前对象(或者是否会)?根据backbone.js文档“要在调用回调时为此提供上下文值,请传递可选的第三个参数:”:
@Collection.bind“reset”,@render,@
,假设render是使用
=>
而不是
定义的,它将在不传递上下文的情况下工作:
render:=>#呈现你的东西
好的,这是真的。我更喜欢使用主干定义的“实例”方法。UI事件是使用
delegateEvents
绑定的,因此它们也可以使用
->
(主干网负责)。如果这不是
render
方法,而是一个只包含事件处理程序的特殊函数,比如说
onBusinessUnitsLoaded
,那么我可以使用
=>
来定义它。我想这只是编码风格的问题。