2013-06-06 2 views
2

그래서 도시 이름을 검색 할 수있는 bsic 타입 어 헤드 설정이 있습니다. 그러나 onselect에도 백엔드로 보낼 수 있도록 그 도시의 위도와 경도가 필요합니다. 부트 스트랩 typeahead는 더 많은 값을 저장합니다.

$('.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에서 수신하고있어 위도 긴하지만 소스 배열에 저장하는 방법을 모른다, 그래서는 onSelect를 행동에 어떤 조언을 사용할 수 있습니까?

답변

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); 
    } 
    }); 
}); 
+0

당신의 해결책은 틀림없이 작동하지만 트위터 유형 선행 기능을보다 능숙하게 재정의합니다 : 매처, 분류기, 업데이터 및 하이 라이터. 더 많은 코드 :(하지만 "return typeahead.process ($ data)"를 쓸 수 있으며 불필요한 배열을 만들 필요가 없습니다. – rivarolle

관련 문제