Jquery Deffered Two Arrays Backbone

时间:2015-12-15 09:20:20

标签: javascript jquery backbone.js underscore.js

上午,

我好像正在撞墙,问题是我希望弹出一个弹出窗口,一旦我的页面完成了GET和POST请求,因为弹出窗口中的数据需要正确。

无论如何,我试图使用带有两个推送项目的不同对象,但这仍然不起作用,弹出窗口在几秒钟后被触发。在网络选项卡中仍有大量请求仍在触发。任何帮助都会被嘲笑。

        var promises = [];

        _.each(models, _.bind(function (item) {
            var filter = this.resources.get(item.id);
            promises.push(filter.fetch(
                    {
                        success: function (model, response) {
                            var user = new UserModel();
                            promises.push(user.save());
                        }
                    }));
        }, this));

        $.when.apply($, promises1).then(_.bind(function () {
            var popupForm = new PopUpView();
            this.$el.append(popupForm.$el);
        }, this));

1 个答案:

答案 0 :(得分:1)

您似乎有一个拼写错误:而不是promises,而是将promises1传递给when()

旁注: _.each()接受上下文作为第三个参数,不需要明确使用_.bind()

var promises = [];

_.each(models, function(item) {
  var filter = this.resources.get(item.id);
  promises.push(filter.fetch({
    success: function(model, response) {
      var user = new UserModel();
      promises.push(user.save());
    }
  }));
}, this);

$.when.apply($, promises).then(_.bind(function() {
  var popupForm = new PopUpView();
  this.$el.append(popupForm.$el);
}, this));