【发布时间】:2015-03-30 09:26:39
【问题描述】:
我正在尝试使用我在大气 (aldeed:geocoder) 上找到的使用 node-geocoder 包的地理编码器包。 meteor 包指定为了执行新的地理编码,我要创建一个新的 GeoCoder 实例,然后在其上调用 geocode 方法,传入一个地址字符串,如下所示:
var geo = new GeoCoder();
var result = geo.geocode("location");
如果我将上述内容放在我的应用程序和 console.log 结果的服务器文件中的 server.js 文件中,我会按预期将一个对象打印到终端。我遇到的问题是当我尝试使用流星方法调用它时,以响应来自搜索框的用户输入。我的模板助手里面有这个:
Template.layout.events({
'submit form': function(e) {
e.preventDefault();
var search = {
location: $(e.target).find('[name=search]').val()
}
console.log(search.location);
Meteor.call('getGeoCode', search.location, function(result) {
console.log(result)
});
}
});
和集合的文件,forecasts.js 里面有这个:
Forecasts = new Mongo.Collection('forecasts');
Meteor.methods({
getGeoCode: function(search) {
var geo = new GeoCoder();
result = geo.geocode(search);
return result;
}
});
但是当我尝试它时,我在控制台中收到一个错误,告诉我 GeoCoder 未定义。具体来说:
“模拟调用'getGeoCode'的效果时出现异常” ReferenceError: GeoCoder is not defined
那么,这里发生了什么?为什么不能在该方法中创建一个新的 GeoCoder 实例并像我一样调用它?
【问题讨论】:
标签: javascript meteor meteorite