2014-02-18 111 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})); 
    }); 
}