Backbone.js 如何获取和填充GooglePlacesJSAPI的主干模型?
我正在实施一个需要访问的系统。项目的大部分时间我都在使用rails,但现在我想在我的一个视图中注入一点AJAX。基本上,它是一个显示位置附近位置的视图。为此,我使用了GooglePlaces的JSAPI。快速工作流程包括: 1-用户输入文本查询并点击enter键。 2-有一个AJAX调用从GooglePlacesAPI请求数据。 3-向用户展示成功的结果 问题主要出现在步骤2中。我想使用它,但当我创建主干模型时,它会请求“rootURL”。如果对位置的请求是从服务器完成的,那么这不会是一个问题,但事实并非如此 地点呼叫是这样完成的:Backbone.js 如何获取和填充GooglePlacesJSAPI的主干模型?,backbone.js,google-places-api,Backbone.js,Google Places Api,我正在实施一个需要访问的系统。项目的大部分时间我都在使用rails,但现在我想在我的一个视图中注入一点AJAX。基本上,它是一个显示位置附近位置的视图。为此,我使用了GooglePlaces的JSAPI。快速工作流程包括: 1-用户输入文本查询并点击enter键。 2-有一个AJAX调用从GooglePlacesAPI请求数据。 3-向用户展示成功的结果 问题主要出现在步骤2中。我想使用它,但当我创建主干模型时,它会请求“rootURL”。如果对位置的请求是从服务器完成的,那么这不会是一个问题,
service = new google.maps.places.PlacesService(map);
service.nearbySearch(request, callback);
传递回调函数:
function callback(results, status) {
if (status == google.maps.places.PlacesServiceStatus.OK) {
for (var i = 0; i < results.length; i++) {
var place = results[i];
createMarker(results[i]);
}
}
}
函数回调(结果、状态){
if(status==google.maps.places.PlacesServiceStatus.OK){
对于(var i=0;i
是否可以覆盖主干模型中的“fetch”方法,并用成功的位置结果填充模型?这是个坏主意吗?可以覆盖主干模型的获取方法
var mapModel = Backbone.Model.extend({
fetch: function (options) {
// do your call to google places here
},
callBackFunctionForGoogleMaps: function (results, status) {
// call back function here would set model properties
}
});
return mapModel;
通过这种方式,您可以覆盖fetch并删除主干的默认行为以进行ajax调用
仅供参考,如果您希望覆盖主干模型获取,但仍具有model.fetch的默认行为,则可以执行以下操作。注意调用Backbone.Model.fetch的返回
var mapModel = Backbone.Model.extend({
fetch: function (options) {
// do any pre-fetch actions here
return Backbone.Model.fetch.call(options);
}
});
return mapModel;
在这里重写fetch方法可能不是一个坏主意,因为您仍然在为您的模型获取数据,而不是通过ajax调用。不过,明智的做法是留下注释,指出您以这种方式重写fetch是有原因的