使用 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
         )
     )