Заранее благодарю вас за помощь.Угловая директива md-autocomplete с автозаполнением карт GoogleService
Я пытаюсь установить установку окна автозаполнения, чтобы взаимодействовать с API AutocompleteService Google, используя угловые.
В настоящий момент моя функция Angular AutocompleteService работает хорошо и извлекает массив предлагаемых прогнозов на основе того, что вводится в строку поиска.
Вот мой автозаполнения служба:
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);
};
Эта услуга вводится в контроллер, который управляет формой я пытаюсь подключиться к автозаполнения. (Я включил только функцию, которая участвует в бите автозаполнения и взаимодействует с AutocompleteService)
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;
}
};
Я сейчас пытаюсь телеграфировать, чтобы получить выпадающий список на панели поиска, так что пользователи могут затем выберите из массива предложений о том, что служба автозаполнения Google возвращается в RequestsController.
<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>
Я вводил модуль ngMaterial, и все компоненты, необходимые Бауэр в нужном месте - я знаю это, потому что директива реагирует на вход, но он показывает только серое поле.
(function() {
'use strict';
angular
.module('LocalKnowledgeApp', ['ngResource', 'ngMaterial']);
}());
Это то, что мой веб-страница выглядит как ...
[
Любая помощь очень ценится!