如果我错了请纠正我... 在编辑这篇文章之前,我编写了一个没有错误的代码。 但在我阅读有关如何创建最小,完整和可验证示例的评论之后。我很困惑,因为我以前的最小脚本不起作用,我不能包含完整的代码,因为我的代码很复杂,而且我没有可验证的例子。
我只需要知道如何从google.maps.places创建自动填充功能,以便在EXTJS中自动填充我的文本字段。
先谢谢..
答案 0 :(得分:1)
我已经从@Rob Schmuecker个答案中解决了这个问题。 因此,关于使用适当的代理从谷歌调用json的问题的焦点就像使用:
addressModel.getProxy().setExtraParam('url', 'http://maps.google.com/maps/api/geocode/json?address=' + queryString + '&sensor=false');
从这个数据模型中动态设置参数:
addressModel = Ext.define("Addresses", {
extend: 'Ext.data.Model',
proxy: {
type: 'jsonp',
url: 'https://jsonp.nodejitsu.com',
reader: {
type: 'json',
root: 'results',
totalProperty: 'totalCount'
}
},
fields: ['formatted_address']
});
之后你可以创建一个组合框,并在每个keyup中为组合框添加监听器,以便在你的代理中调用extraparam。
这是来自@Rob Schmuecker的演示: https://fiddle.sencha.com/#fiddle/g70
这是Rob解决我问题的完整答案: Check This...
答案 1 :(得分:0)
我已经找到了一种方法来解决这个问题,使用Google Places-Library。
使用Ext JS 3.4的解决方案
1)整合Google Places API
2)创建一个自定义代理(我已经扩展了Ext.data.DataProxy)
2a)设置代理api(读:true)
2b)覆盖doRequest方法。在那里你可以调用google.maps.PlacesService.textSearch
2c)使用阅读器处理地方申请(我已经创建了自定义阅读器)
3)将您的数据存储在商店中(我创建了我的自定义商店)
4)创建消耗来自商店的数据的组件
请注意,您的应用必须遵守Google Maps / Google Earth API服务条款! (您必须出示徽标,第三方权利持有人等)。
你有它!