Javascript 如何在使用Backbone.js呈现视图后触发事件?
我有许多使用模板的视图。视图的渲染效果非常好,现在在我的路由器中,我正在寻找一种在渲染所有视图时触发事件的方法! 我使用了类似LAB.js的js加载程序,但没有任何效果 在所有渲染之后,我将事件输入firebug控制台,它就可以工作了 如何在此处放置事件,以便在渲染所有视图时触发事件 **我的活动:**Javascript 如何在使用Backbone.js呈现视图后触发事件?,javascript,backbone.js,backbone-events,Javascript,Backbone.js,Backbone Events,我有许多使用模板的视图。视图的渲染效果非常好,现在在我的路由器中,我正在寻找一种在渲染所有视图时触发事件的方法! 我使用了类似LAB.js的js加载程序,但没有任何效果 在所有渲染之后,我将事件输入firebug控制台,它就可以工作了 如何在此处放置事件,以便在渲染所有视图时触发事件 **我的活动:** $('div[id ^="solfg_"]').mobilyblocks(); **路由器:** (function () { window.AppRouter = Backbone.Ro
$('div[id ^="solfg_"]').mobilyblocks();
**路由器:**
(function () {
window.AppRouter = Backbone.Router.extend({
routes: {
"" : "init"
},
init: function(){
this.solfsmodel = new Solfs();
this.solfsmodel.fetch();
this.solfsView = new SolfsView({model: this.solfsmodel});
}
});
var app_router = new AppRouter;
Backbone.history.start();
}(jQuery));
多谢各位
更新:我发现解决方案只需使用jquery中的$.when().then(),真令人惊讶,我从未见过这个jquery函数 *我的解决方案:*
如果只需要等待集合被提取(源:),则可以使用
fetch
方法的success
回调
最好在使用其他库之前使用Backbone.js方法
因此,您的代码应该如下所示:
(function () {
window.AppRouter = Backbone.Router.extend({
routes: {
"" : "run"
},
initialize: function(){
this.solfsmodel = new Solfs();
this.solfsView = new SolfsView({model: this.solfsmodel});
},
run: function(){
this.solfsmodel.fetch({
success: function () {
$('div[id ^="solfg_"]').mobilyblocks();
}
);
}
});
var app_router = new AppRouter;
Backbone.history.start();
}(jQuery));
您是否已将收藏绑定到视图?因为如果您只需要等待集合被提取,您可以使用事件
success
或error
。我会写一个新的答案告诉你怎么做。如果你有一个以上的模型,你会怎么做?您是否实现了每次获取成功?确实,如果您提供了多个模型,$。何时是更好的解决方案。但别忘了检查是否发生了错误。
(function () {
window.AppRouter = Backbone.Router.extend({
routes: {
"" : "run"
},
initialize: function(){
this.solfsmodel = new Solfs();
this.solfsView = new SolfsView({model: this.solfsmodel});
},
run: function(){
this.solfsmodel.fetch({
success: function () {
$('div[id ^="solfg_"]').mobilyblocks();
}
);
}
});
var app_router = new AppRouter;
Backbone.history.start();
}(jQuery));