骨干集合:_。after在异步请求后调用

时间:2013-08-02 11:36:28

标签: backbone.js underscore.js

我想单独更新一组帖子,并在每个请求完成后重新渲染我的收藏。

目前,下面的代码永远不会触发renderPosts,我不知道为什么

onClickCopyPosts: function(posts, publish_target) {

        var self = this;

        var renderPosts = _.after(posts.length, function() {
            console.log('got here');
            self.collection.fetch({reset: true});
        });

        _.each(posts, function(post) {
            post = new PostModel(post);
            post.set('id', null);
            post.set('publish_target', publish_target);
            post.save({success: renderPosts});
        });
    },

1 个答案:

答案 0 :(得分:2)

保存的签名是model.save([attrs], [options]) ..此处success处理程序是一个选项。

因此,当您将签名定义为post.save({success: renderPosts});时,成功处理程序将传递到不执行任何操作的属性中。

将其更改为

post.save({}, {success: renderPosts});

post.save(null, {success: renderPosts});

将选项作为第二个参数传递。