Я установил в отдельных файлах разные компоненты, но когда я агрегирую вход для поиска, я получаю эту ошибку в локальном:
angular.js:13424 Error: Map container not found.
и в плункер:
angular.js:13424Error: Map container is already initialized.
Странно, что карта работает хорошо. Что не так?
Вы дважды инициализировали карту, одну в BaseMapController
и другую в inputController
.
В BaseMapController
замените
_map = BaseMapService.mapElement();
с
$scope.map = BaseMapService.mapElement();
_map=$scope.map;
В inputController
замените
BaseMapService.AutoComplete(_searchInputId).bindTo('bounds', BaseMapService.mapElement());
с
BaseMapService.AutoComplete(_searchInputId).bindTo('bounds', $scope.map);
Надеюсь, что решить вашу проблему.
Обновить:
В вашей демонстрации автозаполнение работает нормально, но не обязательно привязывается к карте. Например, если вы ищете любое место, вы не найдете это место на карте. Я только что разрешил указанную вами ошибку.
Для автозаполнения вы использовали API google и basemap
, вы использовали Leaflet
.
Мое предложение: вместо того, чтобы смешивать эти оба подхода, используйте либо Leaflet.GoogleAutocomplete, либо API JavaScript Google Maps