Vielen Dank für das Betrachten der Frage.Uncaught TypeError: Kann die Eigenschaft 'zIndex' von undefined in Ionic (AngularJS) nicht lesen
Ich mache eine ionische App für die Stadt, in der ich lebe. Es verwendet Google Maps, um einige Informationen zur Stadt anzuzeigen. Außerdem möchte ich benutzerdefinierte Steuerelemente auf der Karte platzieren, um verschiedene Arten von Markierungen anzuzeigen, die Dienste wie Bushaltestellen oder Krankenhäuser sind. Das Problem ist, dass ich diesen Fehler nicht lösen kann: "Uncaught TypeError: Kann die Eigenschaft 'zIndex' von undefined" nicht lesen und habe die meisten anderen Antworten auf diese Frage ausprobiert.
Ich versuche, das Element hinzuzufügen (ich denke, dass Legend sein Name ist) in einem Controller meiner app, so wie diese:
var controlesDiv = document.createElement('DIV');
var controles = new CrearLeyenda(controlesDiv, map);
controlesDiv.index = 4;
map.controls[google.maps.ControlPosition.TOP_RIGHT].push(controles);
Dann außerhalb der Steuerung, ich habe die CrearLeyenda Funktion:
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';
});}
ich hoffe, dass Sie mir helfen können und es tut mir leid für mein Englisch, ich werde versuchen, so gut wie ich kann erklären, wenn Sie mehr Hinweise benötigen.
Vielen Dank im Voraus
Dank DUNCAN für Sie Antwort duncan, ich Ihre Lösung versuchen werde. Wie auch immer, ich folgte einfach diesem Beispiel https://developers.google.com/maps/documentation/javascript/examples/control-customust Wie Sie sehen können, wird die Funktion mit _new_ als Konstruktor aufgerufen und gibt nichts zurück. –
Ok, ich sehe endlich, was falsch war, dank deiner Antwort. Sie können es so nennen, zumindest ist das, was in Google Maps doc angezeigt wird, aber Sie müssen der Map den _controlesDiv_ anstelle von _controles_ übergeben. Danke duncan –
@KevinCifuentesSalas yeah und in diesem Beispiel hätten sie einfach die Funktion aufrufen können, ohne sie einer Variablen zuzuweisen, 'CenterControl (centerControlDiv, map);' – duncan