10

आईएम में एक ऑटोकंपलेट एपीआई हिट करने के लिए एंगुलर-यूई टाइपहेड घटक का उपयोग नहीं कर रहा है, और मैं डेटा को पार्स कर रहा हूं जिसे मैं resp नामक सरणी में वापस प्राप्त कर रहा हूं। हालांकि, मैं यूआई में स्वत: पूर्ण ड्रॉपडाउन को पारित डेटा नहीं देख रहा हूं। बीटीडब्लू, नियंत्रक के पास एक console.log है जो डेटा को सही तरीके से प्रदर्शित करता है, इसलिए मुझे एपीआई कॉल से लौटने की जानकारी है।एंगुलर-यूआई टाइपहेड परिणाम ड्रॉपडाउन

यहाँ मेरी नियंत्रक समारोह है:

$scope.getLocationForSearch = function(locationString){ 

    $scope.locationString = locationString; 
    var url = '/autoComplete/' + locationString ; 
    $http({ 
     method: 'GET', 
     url: url    
    }).then(function successCallback(response) { 
     console.clear(); 
     var resp = response.data.RESULTS.map(function(item){ 
      console.log(item.name); 
      return item.name; 
     }); 

     return resp; 

     }, function errorCallback(response) { 
     console.log(response); 
    });  
} 

और मेरी HTML में:

<div class="input-group"> 
     <input 
      type="text" class="form-control" ng-model="asyncSelected" placeholder="Search city or zip code" 
      uib-typeahead="item for item in getLocationForSearch($viewValue)"/> 
     <i ng-show="loadingLocations" class="glyphicon glyphicon-refresh"></i> 
     <div ng-show="noResults"> 
      <i class="glyphicon glyphicon-remove"></i> No Results Found 
     </div> 
     <span class="input-group-btn"> 
      <button class="btn btn-default" name="search" ng-model="asyncSelected" type="submit" ng-click="getWeather(asyncSelected)"> 
       <span class="glyphicon glyphicon-search" aria-hidden="true"></span> 
      </button> 
     </span> 
    </div><!-- /input-group --> 

यह एक ही मुद्दे के लिए यहां पर कई पोस्ट नहीं हैं, लेकिन कोई भी वास्तव में मेरे विशिष्ट समस्या का जवाब। किसी भी मदद की सराहना की है।

+0

@beaver की तरह कहा, तुम एक $ वादा –

उत्तर

11

आपका फ़ंक्शन getLocationForSearch() अच्छा नहीं है: इसे वचनuib-typeahead निर्देश वापस करना होगा। तो काम कर कोड है:

$scope.getLocationForSearch = function(locationString) { 

    $scope.locationString = locationString; 
    var url = '/autoComplete/' + locationString ; 

    return $http({ 
     method: 'GET', 
     url: url 
    }).then(function successCallback(response) { 
     console.clear(); 
     return response.data.results.map(function(item) { 
     console.log(item.name); 
     return item.name; 
     }); 
    }, function errorCallback(response) { 
     console.log(response); 
    }); 
    } 

यहाँ Plunker पर एक काम उदाहरण है:

http://plnkr.co/edit/v67vR8f3nHImGSoAUyBd?p=preview

+0

मैं शुरू में यह एक ही कोड था और वास्तव में वापस जाने के लिए की जरूरत है मुझे यकीन नहीं है कि यह मेरे पास से अलग है। मैंने जो कुछ भी वापस किया जा रहा था उसे डीबग करने के लिए अभी 'resp'' चर जोड़ा। मैंने इसे वापस बदल दिया लेकिन यह काम नहीं किया। इसके अलावा, 'परिणाम' सभी कैप्स में होना चाहिए ... मुझे पता है कि ज्यादा नहीं बदलता है, लेकिन इस तरह जेसन ऑब्जेक्ट वापस आ गया है। कंसोल बीटीडब्ल्यू में कोई त्रुटि नहीं है। – pooky666

+3

आपको $ http() फ़ंक्शन का आउटपुट वापस करना होगा जो एक वादा है, https://docs.angularjs.org/api/ng/service/$http देखें। इसके बजाए, आपने राहत वापस करने की कोशिश की जो हल किए गए वादे में प्रतिक्रिया है। यह एक अलग बात है। – beaver

+1

एक उदाहरण के साथ मेरी संपादित प्रतिक्रिया देखें। – beaver

संबंधित मुद्दे