我在Rails上有一个骨干应用程序,它会响应新的模型属性。
save: ->
self = @
attributes = {}
@$el.children('.table').find('input, textarea').each ->
attributes[ $(@).attr 'name' ] = $(@).val()
self.$el.find('.text.' + $(@).attr('name') ).html $(@).val()
response = @model.save attributes
category = response.responseText
window.response = response
window.category = category
console.log response
console.log response.responseText
在控制台中,响应返回一个对象,但response.responseText没有。但是,如果我进入控制台并键入“response.responseText;” (因为我绑定了对窗口的响应),它返回文本。
我有没有理由不能在我的backbone.js函数中访问该变量,但我可以在控制台中使用?
答案 0 :(得分:0)
Backbone发出 AJAX 请求,即异步请求。
console.log response
console.log response.responseText
这些行可能是在服务器实际响应之前执行(你不确定,但是因为你之前的代码很少,所以)。使用回调来处理该问题:
response = @model.save attributes success: =>
console.log response.responseText
或其他回调,例如done
等。您还可以使用sync
等事件。