Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在使用Backbone.js呈现视图后触发事件?_Javascript_Backbone.js_Backbone Events - Fatal编程技术网

Javascript 如何在使用Backbone.js呈现视图后触发事件?

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

我有许多使用模板的视图。视图的渲染效果非常好,现在在我的路由器中,我正在寻找一种在渲染所有视图时触发事件的方法! 我使用了类似LAB.js的js加载程序,但没有任何效果

在所有渲染之后,我将事件输入firebug控制台,它就可以工作了

如何在此处放置事件,以便在渲染所有视图时触发事件

**我的活动:**

$('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));