在jquery.ajax回调上获取类实例
我正在尝试使用jQuery.ajax回调调用实例以处理消息。但是,我无法将调用实例放入函数中 在GetHistory调用中,返回一个消息列表,我希望Process方法对每个消息执行操作。问题在于,在回调函数执行期间,返回一个错误,说明“this.Process未定义”。这就是为什么我猜测没有设置实例的原因 我还尝试将参数添加到“context:this”的.ajax中,但似乎没有帮助在jquery.ajax回调上获取类实例,jquery,coffeescript,Jquery,Coffeescript,我正在尝试使用jQuery.ajax回调调用实例以处理消息。但是,我无法将调用实例放入函数中 在GetHistory调用中,返回一个消息列表,我希望Process方法对每个消息执行操作。问题在于,在回调函数执行期间,返回一个错误,说明“this.Process未定义”。这就是为什么我猜测没有设置实例的原因 我还尝试将参数添加到“context:this”的.ajax中,但似乎没有帮助 class MessageHandler @messages: [] Process: (messa
class MessageHandler
@messages: []
Process: (message) ->
messages.push message
GetHistory: ->
jQuery.ajax url:'/home/BidDetail', dataType: 'json', data: 'auctionId=1', success: (data) ->
@Process record for record in data.records when record.type == 'BID'
您是否尝试过使用?中建议的=>(the)您是否尝试过使用?中建议的=>(the)我很惊讶
上下文:此
不起作用。您应该能够使用它,或者按照Paul的建议使用=>
(最简洁),或者使用经典的self=this
(更高效):
注意,我假设您正在使用语法
obj.GetHistory()
调用GetHistory
,其中obj
是您希望this
在success
回调中指向的对象。您可能希望使用=>
而不是->
来定义GetHistory
,这样,即使您将其从类实例中分离,上下文也将保持不变。我很惊讶上下文:这不起作用。您应该能够使用它,或者按照Paul的建议使用=>
(最简洁),或者使用经典的self=this
(更高效):
注意,我假设您正在使用语法obj.GetHistory()
调用GetHistory
,其中obj
是您希望this
在success
回调中指向的对象。您可能想用=>
而不是->
来定义GetHistory
,这样,即使您将它从类实例中分离,上下文仍然是相同的。谢谢-我认为ajax回调上下文中的“this”会有所不同。@S.Hebert,是的。抱歉,我已经更正了答案中的代码。谢谢-我在想ajax回调上下文中的“this”会有所不同。@S.Hebert-Er,是的。对不起,我已经更正了答案中的代码。
GetHistory: ->
self = this
jQuery.ajax url:'/home/BidDetail', dataType: 'json', data: 'auctionId=1', success: (data) ->
self.Process record for record in data.records when record.type == 'BID'