Backbone.js销毁Collection的一个子集

时间:2014-02-14 21:23:45

标签: javascript ruby-on-rails backbone.js model-view-controller frontend

使用Backbone.js作为我的Rails应用程序的前端框架。在Rails模型方面,我有一个出版物模型和一个文章模型。每个出版物都与许多文章相关联,每篇文章只属于一个出版物。当用户决定删除发布时,我希望所有相关文章也被删除。当我说删除时,我的意思是从数据库中删除。

以下代码适用于从数据库中删除指定的发布,但不适用于删除相关文章:

  // destroys the proper publication but still needs to update the view
  delete_publication: function(id){
    var publication = new SimpleGoogleReader.Models.Publication({id: id});
    publication.fetch({
      success: function(x){
      }
    });
    publication.destroy();

    var articles = new SimpleGoogleReader.Collections.Articles();
    articles.fetch({
      data: {publication_id: id},
      success: function(x){
      }
    });
    articles.destroy();
  }

});

我也尝试在成功函数中移动articles.destroy()行,但这也不起作用。我可能是错的,但我认为当我在文章上调用.destroy()函数时,我不再使用Collection对象了。我错了吗?我希望Collection对象不包含每个Model,只包含指定的。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您是否曾尝试删除文章:

// destroys the proper publication but still needs to update the view
  delete_publication: function(id){

    var articles = new SimpleGoogleReader.Collections.Articles();
    articles.fetch({
      data: {publication_id: id},
      success: function(x){
      }
    });
    articles.reset(); // empty the collection
    articles.sync(); // persist the state of the collection to the server

    var publication = new SimpleGoogleReader.Models.Publication({id: id});
    publication.fetch({
      success: function(x){
      }
    });
    publication.destroy();
  }

});