1

我有一个看起来像这样的模型(在咖啡脚本中):

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 应该只包含response来自 JSON 的值。然而,似乎正在发生的是我看到了 log Parse triggered!,但我在 myFunction 中访问的响应对象根本没有被解析。换句话说,就好像 JSON 刚刚被直接传递一样。

我究竟做错了什么?

4

1 回答 1

3

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

于 2013-04-25T23:36:11.977 回答