Backbone:在等待服务器响应时使用加载映像

时间:2014-03-06 02:08:57

标签: javascript backbone.js

应用程序中的流程在两个不同的模型上同时有两个后端调用 第一个用户登录该网站如果它正常,另一个fetch()获取详细信息。  这样就有两种模式

  1. 登录模式
  2. 信息中心集合
  3. 登录视图如何使save()请求登录模型,如果成功,则路由到getCampaigns LoginView

    login: function(e) {
        e.preventDefault();
      this.model.set({
        "email": $('#email').val(),
        "password": $('#password').val()
      });
      this.model.save({},{
        success: function(model, response, options){
            Backbone.history.navigate('getCampaigns', {trigger: true});
        }
      });
    }
    

    路由器

    getCampaigns: function() {
            $('.container').html('<img src="../public/assets/images/spinner.gif"/>');
            dashboardList.fetch();
            dashboardListView.render();
            $('.container').html(dashboardListView.el);
        }
    

    不确定应该如何应用此加载图片 $this.html("<img src='/assets/img/spinner.gif'>");

1 个答案:

答案 0 :(得分:1)

首先,您需要等到收集集合之后再渲染视图:

dashboardList.fetch({
    success: function() {
        dashboardListView.render();
    }
});

或在您看来:

var DashboardListView = Backbone.View.extend({
    initialize: function() {
        this.listenTo(this.collection, 'reset', this.render);
    }
});

比你可以放在代码中的某个地方:

$(document).ajaxStart(function(){
    $('.container').html('<img src="../public/assets/images/spinner.gif"/>');
});
$(document).ajaxStop(function(){
    $('.container').empty();
});