私はビューを持っています
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'))
)
同じビュー内で機能し、うまく機能します...しかし、モデルを設定するための他の機能を取得できません。これは、非同期であることについての何かだと思います。私は決してこれの専門家ではありません。私はバックボーンを手に取っていますが、これは私を困惑させています!