0

我正在尝试从我的收藏中过滤一些数据。我正在为作业使用 where 方法,但它返回一个空数组。这是代码。

模型:

return Backbone.Model.extend({
            urlRoot: server_url + "tasks",
            defaults: {
                'id': null,
                'title': '',
                'description': '',
                'deadline': null,
                'priority': 1,
                'status': 1,
                'key': '',
                'priority_name': '',
                'status_name': ''
            }
    });

收藏:

return Backbone.Collection.extend({
        url: server_url + "tasks",
        model: TaskModel
    });

并像这样使用它:

var taskList = new TaskList();
taskList.fetch({
          data: $.param({key: $.cookie('SID')}),
          success: function(collection, response){
            if(response.error){
              window.location.replace('#logout');
            }
          }
        });
taskList.where({status: 1});

taskList 包含所有数据。它不是空的。我尝试了很多组合,但每次都运气不好。

我也从以下帖子中进行了咨询,但结果相同。

带有 OR 条件的骨干集合 where 子句

按属性值过滤骨干集合

ToJSON on Backbone.Collection#where?

我在这里缺少什么?

4

1 回答 1

1

您发布的代码似乎没有任何问题,但是您没有向我们展示您的Collection. 请记住,Backbone.Collection.where它只需要一个literal并返回一个匹配的数组Backbone.Model。我采用了您的代码并对其进行了简化以演示一个工作示例:http: //jsfiddle.net/CK3Hz/

根据下面的评论编辑

Backbone.Collection.fetchsuccess回调接收(collection, response, options)参数。如果您要执行whereon collection,这应该可以。

我提供了另一个 jsfiddle来演示使用事件传播,我认为这是您的最终目标。

于 2013-03-04T08:39:45.687 回答