Backbone Model.parse被调用但没有效果

时间:2013-04-25 23:24:26

标签: javascript backbone.js coffeescript

我有一个看起来像这样的模型(在coffeescript中):

class MyModel extends Backbone.Model
    parse: (response) ->
        console.log 'Parse triggered!'
        return response.response

    myFunction: (data, callback) ->
        self = this
        this.fetch
            data: data
            processData: true
            success: (model, response) ->
                console.log response
                # App specific stuff happens here
            error: (model, response) -> console.log response

服务器的JSON响应格式如下:

{
    response: {
        id: 1,
        foo: 'blah'
        bar: 'meh'
    }
}

据我所知,myFunction中的console.log应该只包含JSON中response的值。然而,似乎正在发生的事情是我看到了日志Parse triggered!,但我在myFunction中访问的响应对象根本没有被解析。换句话说,就像JSON刚刚直接通过一样。

我做错了什么?

1 个答案:

答案 0 :(得分:3)

在填充模型后,

Model#fetch将调用成功处理程序,在填充模型之前,parse将被称为。如果您在成功回调中查看model,则应该会看到JSON中的idfoobar值。传递给成功回调的response将是原始AJAX响应对象。