我有观点
class FoursquareSearch.Views.Origin extends Backbone.View
events:
'change [name=origin]': 'setOrigin'
'click [name=geolocate]' : 'geolocate'
geolocate: ->
navigator.geolocation.getCurrentPosition(@handle)
handle: (response) ->
@model.set(coords: response)
我正在尝试确定设备的位置,然后使用响应设置模型。但是我得到
Uncaught TypeError: Cannot call method 'set' of undefined
奇怪的是,这只发生在它在这个函数中时。例如,如果我使用:
geocode: (location) ->
data =
location: location
$.ajax(
type: 'POST'
url: '/search/geocode'
data: data
dataType: 'json'
error: (jqXHR, textStatus, errorThrown) =>
alert("ERROR")
success: (response, text, xhr) =>
@model.set(coords: response)
@center(@model.get('coords'))
)
在同一个视图中它可以工作,而且效果很好......但是我无法获得其他功能来设置模型。我认为这是关于它是异步的。我绝不是这方面的专家,我一直在学习 Backbone,但这让我很难过!