Backbone.js collection.fetch()在view.render()之后工作
您好,我正在寻找一种方法,以便在Backbone.js collection.fetch()在view.render()之后工作,backbone.js,Backbone.js,您好,我正在寻找一种方法,以便在集合.fetch()完成后对SomeFunc()进行异步调用。大概是这样的: this.collection.fetch(function(){ console.log('Fetch is done so I'm going to render the view!'); }) 我想要它的原因: 我的视图呈现了一些集合。我使用fetch()函数从REST API的服务器端获取此集合中的全部数据。在fetch()之后,我尝试渲染视图。但是在render开始时,
集合.fetch()完成后对SomeFunc()进行异步调用。大概是这样的:
this.collection.fetch(function(){
console.log('Fetch is done so I'm going to render the view!');
})
我想要它的原因:
我的视图呈现了一些集合。我使用fetch()
函数从REST API的服务器端获取此集合中的全部数据。在fetch()之后,我尝试渲染视图。但是在render开始时,fetch()仍然没有完成,因此视图是用空集合呈现的。解决这个问题的方法是什么
Thx用于任何预付款。只需使用成功、错误回调:
this.collection.fetch({
success: function(){
console.log("Fetch is done so I'm going to render the view!");
},
error: function() {...}
})
只需使用成功、错误回调:
this.collection.fetch({
success: function(){
console.log("Fetch is done so I'm going to render the view!");
},
error: function() {...}
})
我不同意使用success
和error
回调。它们至少没有利用主干网集合的有用性。您需要尽可能地使用主干事件!看看绑定到集合的“重置”事件,该事件是在成功获取后触发的。尝试在视图的初始化方法中执行类似操作:
initialize: function () {
this.collection.bind('reset', this.render, this);
},
更少的代码,更干净,并且可能利用了库中最有用的部分:事件 我不同意使用成功
和错误
回调。它们至少没有利用主干网集合的有用性。您需要尽可能地使用主干事件!看看绑定到集合的“重置”事件,该事件是在成功获取后触发的。尝试在视图的初始化方法中执行类似操作:
initialize: function () {
this.collection.bind('reset', this.render, this);
},
更少的代码,更干净,并且可能利用了库中最有用的部分:事件 通过使用jQuery的延迟对象,您可以稍微整理一下:
顺便说一句,我知道你可以将事件用于类似的目的,但如果你按照手册的字面意思:
“请注意,不应使用fetch来填充页面加载时的集合-加载时需要的所有模型都应已引导到位。fetch用于为不立即需要的接口延迟加载模型:例如,具有可切换打开和关闭的注释集合的文档。”
然后,您可能会根据需要提取数据,可能是通过一种方法,该方法以我演示的方式包装并调用fetch。您可以利用jQuery的延迟对象稍微整理一下:
顺便说一句,我知道你可以将事件用于类似的目的,但如果你按照手册的字面意思:
“请注意,不应使用fetch来填充页面加载时的集合-加载时需要的所有模型都应已引导到位。fetch用于为不立即需要的接口延迟加载模型:例如,具有可切换打开和关闭的注释集合的文档。”
然后,您可能会根据需要提取数据,可能是通过一种方法,该方法以我演示的方式包装并调用fetch。谢谢。这正是我想要的!可以通过使用this.collection.fetch()来整理这个。然后(doSomething)@Crungmungus-好主意:)+1谢谢。这正是我想要的!可以通过使用承诺this.collection.fetch().然后(doSomething)@Crungmungus-好主意:)+1 Thx的可能副本很多,好主意!请记住,除非传入reset:true(主干网1.0),否则在获取时不会触发reset。在@Crungmungus good shout上看到“升级到主干网1.0”的注释,可能会让他困惑一段时间,然后他才想出很多好主意!请记住,除非传入reset:true(主干网1.0),否则在获取时不会触发reset。看到@Crungmungus good shout上的“升级到主干网1.0”注释,他可能会困惑一段时间才明白这一点