0

我正在尝试过滤包含带有一些嵌套对象的模型的集合。不幸的是,我的结果总是空的。

所以我在集合中返回的模型是这样构建的:

模型

我的目标很简单: 我有一个包含标签列表的视图和一个包含所有问题的内容视图。当用户单击标签时,例如“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);
    },

这可能很简单,但我不知道该怎么做。提前致谢 :)

4

1 回答 1

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);
    },

我放了一面旗帜。如果他在循环内变为真,则模型具有此标签,因此我将其返回。我认为这不是很传统,所以如果有人有其他解决方案,请随时发布:)

于 2013-08-17T17:54:35.623 回答