3

所以我有一个基本的预输入设置,我在其中搜索城市名称,但在选择时我还需要该城市的纬度和经度,以便我可以将其发送到后端。

  $('.typeahead').typeahead({
    minLength : 3,
    source : function(typeahead,query){
        return $.ajax({
        url: appUrl+"/"+query,
        dataType: 'json',
        success: function(data)
        {
          var obj = $.parseJSON(data);
          var locations = [];
          $(data).each(function(index,value){
            locations.push(value.City);
          });
          return typeahead.process(locations);
        }
      });
    },
    onselect : function(item){

      console.log(item);
    }
  });

所以我从 JSon 接收 lat 和 long 但我不知道如何将它们存储在源数组中,所以我可以在 onselect 操作中使用它们,有什么提示吗?

4

1 回答 1

0

解决方案是创建另一个对象来存储数据,以便我以后可以访问它。

 var locationsData = {};
  $('.typeahead').typeahead({
    minLength : 3,
    source : function(typeahead,query){
        return $.ajax({
        url: appUrl+"/"+query,
        dataType: 'json',
        success: function(data)
        {
          var obj = $.parseJSON(data);
          var locations = [];
          $(data).each(function(index,value){
            locations.push(value.City);
            locationsData[value.City] = {'Lat' : value.Latitude, 'Long' : value.Longitude};
          });
          return typeahead.process(locations);
        }
      });
    },
    onselect : function(item){

      console.log(item);
      console.log(locationsData);
      console.log(locationsData[item].Lat);
    }
  });
});
于 2013-06-06T17:11:04.017 回答