Спасибо, что посмотрели этот вопрос.Uncaught TypeError: Невозможно прочитать свойство «zIndex» undefined in Ionic (AngularJS)
Я занимаюсь ионным приложением для города, в котором я живу. Он использует карты Google для отображения некоторой информации, относящейся к городу. Более того, я хочу поместить на карту пользовательские элементы управления, чтобы показать разные типы маркеров, которые являются такими услугами, как остановки автобусов или больницы. Проблема в том, что я не могу решить эту ошибку: «Uncaught TypeError: невозможно прочитать свойство« zIndex »неопределенного», и я попробовал большинство других ответов на этот вопрос.
Я пытаюсь добавить элемент (я думаю, что Legend является его имя) внутри контроллера моего приложения, так же, как это:
var controlesDiv = document.createElement('DIV');
var controles = new CrearLeyenda(controlesDiv, map);
controlesDiv.index = 4;
map.controls[google.maps.ControlPosition.TOP_RIGHT].push(controles);
Тогда вне контроллера, я имею CrearLeyenda функция:
function CrearLeyenda(controlesDiv, map) {
controlesDiv.style.padding = '5px 0px';
var controlesUI = document.createElement('DIV');
controlesUI.style.backgroundColor = 'white';
controlesUI.style.borderStyle = 'solid';
controlesUI.style.borderWidth = '1px';
controlesUI.style.borderColor = 'gray';
controlesUI.style.boxShadow = 'rgba(0, 0, 0, 0.398438) 0px 2px 4px';
controlesUI.style.cursor = 'pointer';
controlesUI.style.textAlign = 'center';
controlesUI.title = 'Click to see Churches';
controlesDiv.appendChild(controlesUI);
var controlesText = document.createElement('DIV');
controlesText.style.fontFamily = 'Arial,sans-serif';
controlesText.style.fontSize = '13px';
controlesText.style.padding = '1px 6px';
controlesText.style.fontWeight = 'bold';
controlesText.innerHTML = 'Controles';
controlesUI.appendChild(controlesText);
google.maps.event.addDomListener(controlesUI, 'click', function() {
alert("clicked");
if (controlesText.style.fontWeight == 'bold') {
controlesText.style.fontWeight = 'normal';
} else {
controlesText.style.fontWeight = 'bold';
}
});
google.maps.event.addDomListener(controlesUI, 'mouseover', function() {
controlesUI.style.backgroundColor = '#e8e8e8';
});
google.maps.event.addDomListener(controlesUI, 'mouseout', function() {
controlesUI.style.backgroundColor = 'white';
});}
Я надеюсь, что вы можете помочь мне, и я прошу прощения за мой английский, я постараюсь объяснить, как лучше, как я могу, если вам нужно больше указаний.
Заранее спасибо
Спасибо за вам ответ Duncan, я постараюсь вашим решением. Во всяком случае, я просто последовал этому примеру https://developers.google.com/maps/documentation/javascript/examples/control-custom. Как вы можете видеть, функция вызывается с помощью _new_ в качестве конструктора и ничего не возвращает. –
Хорошо, я наконец понял, что случилось, благодаря вашему ответу. Вы можете так называть, по крайней мере, это то, что появляется в документе google maps, но вам нужно перейти на карту _controlesDiv_ вместо _controles_. Спасибо duncan –
@KevinCifuentesSalas да, и в этом примере они могли просто вызвать функцию, не назначая ее переменной «CenterControl (centerControlDiv, map)»; – duncan