Json 将google地图自动完成api与select2配合使用
我有一个关于使用select2实现Google地图自动完成功能的问题。我在控制台“uncaughtsyntaxerror:意外标记:”中遇到此错误Json 将google地图自动完成api与select2配合使用,json,parsing,jquery-select2,Json,Parsing,Jquery Select2,我有一个关于使用select2实现Google地图自动完成功能的问题。我在控制台“uncaughtsyntaxerror:意外标记:”中遇到此错误 $(文档).ready(函数(){ $(“.address自动完成”)。选择2({ 阿贾克斯:{ url:“https://maps.googleapis.com/maps/api/place/autocomplete/json", 键入:“获取”, 数据类型:“jsonp”, 延误:250, 数据:函数(参数){ 返回{ 输入:params.ter
$(文档).ready(函数(){
$(“.address自动完成”)。选择2({
阿贾克斯:{
url:“https://maps.googleapis.com/maps/api/place/autocomplete/json",
键入:“获取”,
数据类型:“jsonp”,
延误:250,
数据:函数(参数){
返回{
输入:params.term,//搜索项
钥匙:“我的钥匙”
};
},
processResults:函数(数据、参数){
params.page=params.page | | 1;
返回{
结果:数据[“预测”],
分页:{
更多:(params.page*2)
Json结果:
谷歌不喜欢ajax对其API的请求,最好覆盖Select2 dataAdapter并使用谷歌函数调用autocomplete API
$.fn.select2.amd.define('select2/data/googleAutocompleteAdapter', ['select2/data/array', 'select2/utils'],
function (ArrayAdapter, Utils) {
function GoogleAutocompleteDataAdapter ($element, options) {
GoogleAutocompleteDataAdapter.__super__.constructor.call(this, $element, options);
}
Utils.Extend(GoogleAutocompleteDataAdapter, ArrayAdapter);
GoogleAutocompleteDataAdapter.prototype.query = function (params, callback) {
var returnSuggestions = function(predictions, status)
{
var data = {results: []};
if (status != google.maps.places.PlacesServiceStatus.OK) {
callback(data);
}
for(var i = 0; i< predictions.length; i++)
{
data.results.push({id:predictions[i].place_id, text: predictions[i].description});
}
data.results.push({id:' ', text: 'Powered by Google', disabled: true});
callback(data);
};
if(params.term && params.term != '')
{
var service = new google.maps.places.AutocompleteService();
service.getPlacePredictions({ input: params.term }, returnSuggestions);
}
else
{
var data = {results: []};
data.results.push({id:' ', text: 'Powered by Google', disabled: true});
callback(data);
}
};
return GoogleAutocompleteDataAdapter;
}
);
function formatRepo (repo) {
if (repo.loading) {
return repo.text;
}
var markup = "<div class='select2-result-repository clearfix'>" +
"<div class='select2-result-title'>" + repo.text + "</div>";
return markup;
}
function formatRepoSelection (repo) {
return repo.text;
}
var googleAutocompleteAdapter = $.fn.select2.amd.require('select2/data/googleAutocompleteAdapter');
$('.adress-autocomplete').select2({
width: '100%',
dataAdapter: googleAutocompleteAdapter,
placeholder: 'Search Adress',
escapeMarkup: function (markup) { return markup; },
minimumInputLength: 2,
templateResult: formatRepo,
templateSelection: formatRepoSelection
});
添加类型
service.getPlacePredictions({ input: params.term, types: ['address'] }, returnSuggestions);
您可以在此处看到类型:您解决了吗?
service.getPlacePredictions({ input: params.term }, returnSuggestions);
service.getPlacePredictions({ input: params.term, types: ['address'] }, returnSuggestions);