2013-08-17 194 views
0

我想過濾一個集合,它有一些嵌套對象的模型。不幸的是,我的結果總是空的。骨幹 - 試圖對嵌套對象的集合進行過濾

所以集合中返回我的模型是建立這樣的:

model

我的目標很簡單: 我有標籤的列表,並與所有的問題內容視圖的視圖。當用戶點擊標籤,例如「c#」時,我想過濾我的收藏夾,只是回答帶有標籤「c#」的問題。

之前我在我的服務器上做了一個抓取並且工作正常,但它沒有優化。

我已經有了一個包含所有問題的集合,所以爲什麼要打一個新的電話,一個過濾器是我認爲更好的解決方案。

但我沒有成功與我的過濾器,我不知道是否有可能做。現在我把我的過濾器放在我的路由器上,因爲它更容易測試。

我不能讓這樣的過濾器,因爲我有對象

getQuestionsByTags: function(query) { 

     var test = this.questionsCollection.filter(function(model) { 
      return model.attributes.tags.name == query; 
     }) 
     console.log('result'); 
     console.log(test); 
    }, 

所以我想做出一個循環的數組,但我的結果總是空數組。

getQuestionsByTags: function(query) { 

     var test = this.questionsCollection.filter(function(model) { 
      _.each(model.attributes.tags, function(tag) { 
       return tag.name == query; 
      }) 
     }) 
     console.log('result'); 
     console.log(test); 
    }, 

這也許很簡單,但我不知道該怎麼做。 在此先感謝:)

回答

0

我剛剛找到一個解決方案的工作。

getQuestionsByTags: function(query) { 
     var flag; 
     var test2 = this.questionsCollection.filter(function(model) { 
      flag = false; 
      _.each(model.attributes.tags, function(tag) { 
       if(tag.name == query) { 
        flag = true; 
       } 
      }) 

      if(flag) { 
       return model.attributes; 
      } 
     }) 

     console.log('result'); 
     console.log(test2); 
    }, 

我把一個標誌。如果他在循環內部變成真,那麼模型有這個標籤,所以我將它返回。 我認爲這不是很常規,所以如果有人有另一種解決方案,隨時發佈:)