2013-08-17 56 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); 
    }, 

我把一个标志。如果他在循环内部变成真,那么模型有这个标签,所以我将它返回。 我认为这不是很常规,所以如果有人有另一种解决方案,随时发布:)