在检索异步数据时更正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
,那么我可以使用=>
来定义它。我想这只是编码风格的问题。