2014-02-18 156 views
0

Rails应用程序与骨干在前端。我有几篇文章保存到数据库中。每篇文章都有自己独特的ID,但他们也有一个publication_id。我想要做的是用特定的publication_id获取每篇文章。可能有多个文章与任何给定的publication_id相关联。我正在尝试使用Backbone附带的下划线_.where函数。骨干下划线返回空数组

delete_publication: function(id){ 

    var articles = new MyProject.Collections.Articles(); 
    console.log(articles.where({publication_id: id})); 

    } 

编辑:在这个版本中,如果我只是执行console.log文章中,我得到:

child {length: 0, models: Array[0], _byId: Object, constructor: function, url: "/articles"…} 

的目标是最终抢模型,从数据库中删除它们然后相应地更新视图。现在我只想打印具有该特定publication_id的文章的子集。这只是将一个空数组打印到控制台。

我也试过这样:

delete_publication: function(id){ 
    var articles = new MyProject.Collections.Articles(); 
    articles.fetch({ 
    success: function(data){ 
     console.log( data.where({publication_id: id})); 
    } 
    }); 
} 

编辑:在这个版本中,如果只执行console.log文章,我得到:

child {length: 23, models: Array[23], _byId: Object, constructor: function, url: "/articles"…} 

这也只是打印一个空数组。我知道我所寻找的数据是在数据库中,所以如果我做正确的事情,我不应该得到空数组。

如何使用_.where函数来获取集合的子集?也打开更好的方法。希望对于更有经验的人来说,答案是显而易见的!

解决方案! *

delete_publication: function(id){ 
    var articles = new SimpleGoogleReader.Collections.Articles(); 
    articles.fetch({ 
     success: function(data){ 

     _.each(data.models, function(item){ 
      if (item.toJSON().publication_id == id) { 
      console.log(item.toJSON()); 
      } 
      // console.log(item.toJSON().publication_id); 
     }); 

     } 
    }); 
    } 

Rida的BENHAMMANE它再次!上面的代码只能打印到控制台上我想要的文章的JSON对象。

+0

您是否尝试过'console.log(文章)'?请粘贴输出。 – naomik

+0

naomik,看编辑 – user2623706

+1

为什么你说'console.log(articles)'打印一个空数组,如果它打印出'child {length:23,models:Array [23],_byId:Object,constructor:function,url: “/篇” ...}'?我很困惑 – gregates

回答

0

这与success回调,将工作的第二种方法,只是检查返回型号有publication_id集:

上获取回报jqXHR
_each(data.models, function(item) { 
    if (item.publication_id) { 
     console.log(item); 
    } 
}); 
0

成功回调而不是你正在操作的集合。 你可以像这样重写你的电话,并使用你关于文章的封闭。

delete_publication: function(id){ 
    var articles = new MyProject.Collections.Articles(); 

    articles.fetch().then(function(){ 
    console.log(articles.where({publication_id: id})); 
    }); 
}