Vielen Dank im Voraus für Ihre Hilfe.Winkeldirektive md-autocomplete mit Google Maps AutocompleteService
Ich habe versucht, eine Autocomplete-Suchfeld-Setup zur Interaktion mit der Google AutocompleteService API mit eckigen erhalten.
Im Moment funktioniert mein Angular AutocompleteService gut und ruft eine Reihe von vorgeschlagenen Vorhersagen ab, basierend auf dem, was in die Suchleiste eingegeben wurde.
Hier ist mein Autocomplete Service:
angular
.module('LocalKnowledgeApp')
.service('AutocompleteService', [ function() {
var self = this;
var suggestions = [];
self.initPredict = function(searchInput) {
var predict = new google.maps.places.AutocompleteService();
predict.getQueryPredictions({ input: searchInput }, self.displaySuggestions);
};
self.displaySuggestions = function(predictions, status) {
if (status != google.maps.places.PlacesServiceStatus.OK) {
console.log(status);
return;
}
predictions.forEach(function(prediction) {
suggestions.push(prediction.description);
});
};
self.makeSuggestions = function(){
return suggestions.slice(0,10);
};
Dieser Dienst in einen Controller eingespritzt wird, das die Form steuert ich zur Autovervollständigung verbinden versuchen. (Ich habe enthalten nur die Funktion, die in der Autocomplete-Bit beteiligt ist und mit dem Autocomplete)
angular
.module('LocalKnowledgeApp')
.controller('RequestController', ['LocationService', 'MarkersService', 'AutocompleteService', '$http', '$scope',
function(LocationService, MarkersService, AutocompleteService, $http, $scope) {
var self = this;
var isInfoOpen = false;
var clickedRequest = {};
var requestUser = {};
var autocompleteStarted;
self.master = {};
var autocompleteSuggestions = [];
// var search = autoCompleteSearch;
self.autoCompleteSearch = function(searchInput){
if (searchInput.length < 2) {
self.autocompleteStarted = false;
} else {
AutocompleteService.initPredict(searchInput);
self.autocompleteStarted = true;
self.autocompleteSuggestions = AutocompleteService.makeSuggestions();
return self.autocompleteSuggestions;
}
};
ich jetzt versuchen, auf der Suchleiste eine Drop-Down-Box verkabeln zu erhalten, so dass die Nutzer können Wählen Sie dann aus dem Bereich der Vorschläge aus, die der Google Autocomplete-Dienst an den RequestsController zurücksendet.
<div id="myModal" class="modal fade" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content" >
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">Request a tour from a local</h4>
</div>
<div class="modal-body">
<form>
<div class="form-group">
<label for="location">Location</label>
<div>
<md-autocomplete
md-search-text-change="r.autoCompleteSearch(searchText)"
md-input-name="request.location"
md-selected-item="selectedItem"
md-search-text="searchText"
md-items="item in r.autocompleteSearch(searchText)"
md-item-text="item.display"
md-input-minlength="0">
<md-item-template md-highlight-text="searchText">
{{item.display}}
</md-item-template>
</div>
</md-autocomplete>
<aside ng-show="r.autocompleteStarted" id="autocompleteSuggestions">
<ul ng-repeat="suggestion in r.autocompleteSuggestions track by $index"> {{suggestion}} </ul>
<aside>
</div>
Ich habe das ngMaterial Modul injiziert, und haben alle Bower Komponenten an der richtigen Stelle erforderlich - das weiß ich, weil die Richtlinie zur Eingabe reagiert, aber es zeigt nur ein graues Feld.
(function() {
'use strict';
angular
.module('LocalKnowledgeApp', ['ngResource', 'ngMaterial']);
}());
Dies ist, was meine Webseite sucht wie ...
[
Jede Hilfe sehr geschätzt!