2013-08-02 30 views
2

我想單獨更新一個帖子的集合,並且在每個請求完成後再重新呈現我的集合。主幹集合:_.after在異步請求之後不會調用

目前低於從不代碼觸發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}); 
     }); 
    }, 

回答

2

保存的簽名是model.save([attrs], [options])。而success處理器是一個不錯的選擇。

因此,當您將簽名定義爲post.save({success: renderPosts});時,成功處理程序會被傳遞到不執行任何操作的屬性中。

它更改爲

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

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

跑過選項作爲第二個參數。