custom-control.js.html 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <title>JSDoc: Source: directives/custom-control.js</title>
  6. <script src="scripts/prettify/prettify.js"> </script>
  7. <script src="scripts/prettify/lang-css.js"> </script>
  8. <!--[if lt IE 9]>
  9. <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
  10. <![endif]-->
  11. <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
  12. <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
  13. </head>
  14. <body>
  15. <div id="main">
  16. <h1 class="page-title">Source: directives/custom-control.js</h1>
  17. <section>
  18. <article>
  19. <pre class="prettyprint source linenums"><code>/*jshint -W030*/
  20. /**
  21. * @ngdoc directive
  22. * @name custom-control
  23. * @requires Attr2Options
  24. * @requires $compile
  25. * @description
  26. * Build custom control and set to the map with position
  27. *
  28. * Requires: map directive
  29. *
  30. * Restrict To: Element
  31. *
  32. * @param {String} position position of this control
  33. * i.e. TOP_RIGHT
  34. * @param {Number} index index of the control
  35. * @example
  36. *
  37. * Example:
  38. * &lt;map center="41.850033,-87.6500523" zoom="3">
  39. * &lt;custom-control id="home" position="TOP_LEFT" index="1">
  40. * &lt;div style="background-color: white;">
  41. * &lt;b>Home&lt;/b>
  42. * &lt;/div>
  43. * &lt;/custom-control>
  44. * &lt;/map>
  45. *
  46. */
  47. /*jshint -W089*/
  48. ngMap.directive('customControl', ['Attr2Options', '$compile', function(Attr2Options, $compile) {
  49. var parser = Attr2Options;
  50. return {
  51. restrict: 'E',
  52. require: '^map',
  53. link: function(scope, element, attrs, mapController) {
  54. element.css('display','none');
  55. var orgAttrs = parser.orgAttributes(element);
  56. var filtered = parser.filter(attrs);
  57. var options = parser.getOptions(filtered, scope);
  58. var events = parser.getEvents(scope, filtered);
  59. console.log("custom-control options", options, "events", events);
  60. /**
  61. * build a custom control element
  62. */
  63. var compiled = $compile(element.html().trim())(scope);
  64. var customControlEl = compiled[0];
  65. /**
  66. * set events
  67. */
  68. for (var eventName in events) {
  69. google.maps.event.addDomListener(customControlEl, eventName, events[eventName]);
  70. }
  71. mapController.addObject('customControls', customControlEl);
  72. scope.$on('mapInitialized', function(evt, map) {
  73. var position = options.position;
  74. map.controls[google.maps.ControlPosition[position]].push(customControlEl);
  75. });
  76. } //link
  77. }; // return
  78. }]);// function
  79. </code></pre>
  80. </article>
  81. </section>
  82. </div>
  83. <nav>
  84. <h2><a href="index.html">Index</a></h2><h3>service</h3><ul><li><a href="Attr2Options.html">Attr2Options</a></li><li><a href="GeoCoder.html">GeoCoder</a></li><li><a href="NavigatorGeolocation.html">NavigatorGeolocation</a></li><li><a href="StreetView.html">StreetView</a></li></ul><h3>directive</h3><ul><li><a href="bicycling-layer.html">bicycling-layer</a></li><li><a href="cloud-layer.html">cloud-layer</a></li><li><a href="custom-control.html">custom-control</a></li><li><a href="drawing-manager.html">drawing-manager</a></li><li><a href="dynamic-maps-engine-layer.html">dynamic-maps-engine-layer</a></li><li><a href="fusion-tables-layer.html">fusion-tables-layer</a></li><li><a href="heatmap-layer.html">heatmap-layer</a></li><li><a href="info-window.html">info-window</a></li><li><a href="kml-layer.html">kml-layer</a></li><li><a href="lazy-load.html">lazy-load</a></li><li><a href="map.html">map</a></li><li><a href="map-data.html">map-data</a></li><li><a href="map-type.html">map-type</a></li><li><a href="MapController.html">MapController</a></li><li><a href="maps-engine-layer.html">maps-engine-layer</a></li><li><a href="marker.html">marker</a></li><li><a href="overlay-map-type.html">overlay-map-type</a></li><li><a href="shape.html">shape</a></li><li><a href="traffic-layer.html">traffic-layer</a></li><li><a href="transit-layer.html">transit-layer</a></li><li><a href="weather-layer.html">weather-layer</a></li></ul>
  85. </nav>
  86. <br clear="both">
  87. <footer>
  88. Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.3.0-alpha9</a>
  89. and <a href="https://github.com/allenhwkim/angular-jsdoc">angular-jsdoc</a>
  90. </footer>
  91. <script> prettyPrint(); </script>
  92. <script src="scripts/linenumber.js"> </script>
  93. <script>
  94. var href=window.location.href.match(/\/([^\/]+$)/)[1];
  95. document.querySelector("nav a[href='"+href+"']").scrollIntoView(true);
  96. if (window.location.hash == "")
  97. document.querySelector("body").scrollIntoView(true);
  98. </script>
  99. </body>
  100. </html>