使用 Backbone 附加地理位置
Appending Geolocation with Backbone
我的代码的目标是将我从地理定位对象返回的纬度附加到现有元素。我通常使用类似
的东西
this.$el.find(".className").method()
在我的 backbone 代码中执行任何方法。但是,当我创建一个带有函数的 if 语句时,它看起来像这样:
render: function(){
if ("geolocation" in navigator){
navigator.geolocation.getCurrentPosition(function(position) {
this.$el.find(".className").append(position.coords.latitude)
})
}
else {
}
}
"This" 不是 return 我希望定位的对象。
如果我这样做:document.getElementById("idName").append(position.coords.latitude)
在示例中我有 this.$el 的行中,代码将在本地 运行 但缩小后将不起作用(并且不会显示任何错误)。我也明白,即使这种方法确实适用于缩小,也不是编写 backbone 代码的好方法。
考虑到所有这些,我将如何定位我希望附加到的对象?
您可能想使用 _.bind:
navigator.geolocation.getCurrentPosition(
_.bind(
function(position) { this.$el.find(".className").append(position.coords.latitude)},
this
)
)
我的代码的目标是将我从地理定位对象返回的纬度附加到现有元素。我通常使用类似
的东西this.$el.find(".className").method()
在我的 backbone 代码中执行任何方法。但是,当我创建一个带有函数的 if 语句时,它看起来像这样:
render: function(){
if ("geolocation" in navigator){
navigator.geolocation.getCurrentPosition(function(position) {
this.$el.find(".className").append(position.coords.latitude)
})
}
else {
}
}
"This" 不是 return 我希望定位的对象。
如果我这样做:document.getElementById("idName").append(position.coords.latitude)
在示例中我有 this.$el 的行中,代码将在本地 运行 但缩小后将不起作用(并且不会显示任何错误)。我也明白,即使这种方法确实适用于缩小,也不是编写 backbone 代码的好方法。
考虑到所有这些,我将如何定位我希望附加到的对象?
您可能想使用 _.bind:
navigator.geolocation.getCurrentPosition(
_.bind(
function(position) { this.$el.find(".className").append(position.coords.latitude)},
this
)
)