Backbone - не разбирать каждую модель в коллекции после выборки

Как предотвратить функцию синтаксического анализа для модели в выборке коллекции?

    $(function() {
    var Task = Backbone.Model.extend({
        url : function() {
                return this.urlRoot + this.id;
        },
        urlRoot: 'index.php?c=light&a=list_tasks_bb&ajax=true&task=',
        parse: function (response, options) {
            console.log(options);
            console.log(response);
            return response;
        }
    });

    var TaskList = Backbone.Collection.extend({
        model: Task,
        url: 'index.php?c=light&a=list_tasks_bb&ajax=true',

        initialize: function () {

        },
        parse: function (response, options) {
            return response.tasks;
        }
    });

    var Light = Backbone.Router.extend({
        el: $('#light'),
        routes: {
            "tasks/:id": "taskAction",
            "*page": "defaultAction",
        },

        initialize: function () {
            _this = this;
            this.tasks = new TaskList();
            this.users = new UserList();
        },

        taskAction: function(id) {
            this.task = new Task({id: id});
            $.when (
                this.task.fetch()
            ).then(function(zzz) {
                new TaskView({model: _this.task}).render();
            });
        },
        defaultAction: function(page) {
            $.when (
                this.tasks.fetch(),
                this.users.fetch()
            ).then (function() {
                new TaskListView({collection: _this.tasks}).render();
            });
        }
    });
});

У меня есть одна модель и одна коллекция, которую я получаю при помощи ajax fetch. У меня нет возможности изменить бэкэнд, поэтому структура списка задач json:

"contents": {},
"current": false,
"errorCode": 0,
"errorMessage": "",
"u": 4,
"tasks": [{
    "id": "12250",
    "t": "ZZZ",
    "cid": "24",
    "c": "2013-08-22 11:36:32",
    "dd": "02.09.2013",
    "sd": "02.09.2013",
    "pr": "300",
    "pid": "0",
    "atid": "1:4",
    "s": 0,
    "dl": ""
}, {
    "id": "12307",
    "t": "ZZZ",
    "cid": "42",
    "c": "2013-08-28 11:14:44",
    "dd": "05.09.2013",
    "sd": "28.08.2013",
    "pr": "200",
    "pid": "0",
    "atid": "1:4",
    "s": 0,
    "dl": ""
}, {
    "id": "12326",
    "t": "ZZZ",
    "cid": "2",
    "c": "2013-08-29 09:55:34",
    "dd": "31.08.2013",
    "sd": "29.08.2013",
    "pr": "200",
    "pid": "0",
    "atid": "1:4",
    "s": 0,
    "dl": ""
}],
"events": []

Это причина, почему ям с помощью разбора для сбора. На этом этапе все в порядке. Структура JSON для одной задачи:

"contents": {},
"current": false,
"errorCode": 0,
"errorMessage": "",
"u": 4,
"tasks": [{
    "id": "12250",
    "t": "ZZZZ",
    "cid": "24",
    "c": "2013-08-22 11:36:32",
    "dd": "02.09.2013",
    "sd": "02.09.2013",
    "pr": "300",
    "pid": "0",
    "atid": "1:4",
    "text": "XXXXX",
    "s": 0,
    "dl": ""
}],
"comments": [{
    "id": "48178",
    "text": "CCCC",
    "cid": "4",
    "con": "23.08.2013"
}],
"events": []

Так что мне нужно разобрать еще раз для получения одной задачи после "task.fetch ()», После того, как я добавил функцию анализа в модель, она работала нормально, пока я не начал сбор выборки, потому что после анализа коллекции у меня уже есть правильные данные модели, но для каждой модели снова выполняется обратный вызов синтаксического анализа модели.

У меня есть правильный способ исправить это или лучше будет попытаться изменить бэкэнд?

PS Конечно, я могу сделать что-то вроде этого:

  if(response.tasks) {
    return response.tasks[0];
  } else {
    return response;
  }

Но я думаю этоне правильное решение.

Ответы на вопрос(1)

Ваш ответ на вопрос