【问题标题】:Backbone.js destroying a subset of a CollectionBackbone.js 销毁集合的子集
【发布时间】:2014-02-14 21:23:45
【问题描述】:

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

以下代码适用于从数据库中删除指定的出版物,但不适用于删除关联的文章:

  // 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 对象,它不包含每个模型,只包含指定的模型。

有什么想法吗?

【问题讨论】:

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


    【解决方案1】:

    您是否尝试过先删除文章:

    // 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();
      }
    
    });
    

    【讨论】:

    • 我没试过。问题:我可以从收藏中删除文章,但是如何更新数据库以反映该更改?
    • 还没到。一旦我再次访问将回答。很快
    猜你喜欢
    • 2012-05-10
    • 1970-01-01
    • 2012-10-30
    • 1970-01-01
    • 1970-01-01
    • 2014-05-05
    • 1970-01-01
    • 2011-10-19
    • 1970-01-01
    相关资源
    最近更新 更多