@@ -1284,44 +1284,54 @@ angular.module('ngMap', []);
1284
1284
*/
1285
1285
( function ( ) {
1286
1286
'use strict' ;
1287
+ var $timeout , $compile , src , savedHtml ;
1288
+
1289
+ var preLinkFunc = function ( scope , element , attrs ) {
1290
+ window . lazyLoadCallback = function ( ) {
1291
+ console . log ( 'script loaded,' + src ) ;
1292
+ $timeout ( function ( ) { /* give some time to load */
1293
+ element . html ( savedHtml ) ;
1294
+ $compile ( element . contents ( ) ) ( scope ) ;
1295
+ } , 100 ) ;
1296
+ } ;
1287
1297
1288
- angular . module ( 'ngMap' ) . directive ( 'mapLazyLoad' , [ '$compile' , '$timeout' , function ( $compile , $timeout ) {
1289
- 'use strict' ;
1290
- var directiveDefinitionObject = {
1291
- compile : function ( tElement , tAttrs ) {
1292
- ( ! tAttrs . mapLazyLoad ) && console . error ( 'requires src with map-lazy-load' ) ;
1293
- var savedHtml = tElement . html ( ) , src = tAttrs . mapLazyLoad ;
1294
- /**
1295
- * if already loaded, stop processing it
1296
- */
1297
- if ( document . querySelector ( 'script[src="' + src + '?callback=lazyLoadCallback"]' ) ) {
1298
- return false ;
1299
- }
1298
+ if ( window . google === undefined || window . google . maps === undefined ) {
1299
+ var scriptEl = document . createElement ( 'script' ) ;
1300
+ scriptEl . src = src + ( src . indexOf ( '?' ) > - 1 ? '&' : '?' ) + 'callback=lazyLoadCallback' ;
1301
+ document . body . appendChild ( scriptEl ) ;
1302
+ } else {
1303
+ element . html ( savedHtml ) ;
1304
+ $compile ( element . contents ( ) ) ( scope ) ;
1305
+ }
1306
+ } ;
1300
1307
1301
- tElement . html ( '' ) ; // will compile again after script is loaded
1302
- return {
1303
- pre : function ( scope , element , attrs ) {
1304
- window . lazyLoadCallback = function ( ) {
1305
- console . log ( 'script loaded,' + src ) ;
1306
- $timeout ( function ( ) { /* give some time to load */
1307
- element . html ( savedHtml ) ;
1308
- $compile ( element . contents ( ) ) ( scope ) ;
1309
- } , 100 ) ;
1310
- } ;
1311
- if ( window . google === undefined || window . google . maps === undefined ) {
1312
- var scriptEl = document . createElement ( 'script' ) ;
1313
- scriptEl . src = src + ( src . indexOf ( '?' ) > - 1 ? '&' : '?' ) + 'callback=lazyLoadCallback' ;
1314
- document . body . appendChild ( scriptEl ) ;
1315
- } else {
1316
- element . html ( savedHtml ) ;
1317
- $compile ( element . contents ( ) ) ( scope ) ;
1318
- }
1319
- }
1320
- } ;
1321
- }
1308
+ var compileFunc = function ( tElement , tAttrs ) {
1309
+
1310
+ ( ! tAttrs . mapLazyLoad ) && console . error ( 'requires src with map-lazy-load' ) ;
1311
+ savedHtml = tElement . html ( ) ;
1312
+ src = tAttrs . mapLazyLoad ;
1313
+
1314
+ /**
1315
+ * if already loaded, stop processing it
1316
+ */
1317
+ if ( document . querySelector ( 'script[src="' + src + '?callback=lazyLoadCallback"]' ) ) {
1318
+ return false ;
1319
+ }
1320
+
1321
+ tElement . html ( '' ) ; // will compile again after script is loaded
1322
+ return {
1323
+ pre : preLinkFunc
1322
1324
} ;
1323
- return directiveDefinitionObject ;
1324
- } ] ) ;
1325
+ } ;
1326
+
1327
+ var mapLazyLoad = function ( _$compile_ , _$timeout_ ) {
1328
+ $compile = _$compile_ , $timeout = _$timeout_ ;
1329
+ return {
1330
+ compile : compileFunc
1331
+ }
1332
+ } ;
1333
+
1334
+ angular . module ( 'ngMap' ) . directive ( 'mapLazyLoad' , mapLazyLoad ) ;
1325
1335
} ) ( ) ;
1326
1336
1327
1337
/**
@@ -1661,13 +1671,15 @@ angular.module('ngMap', []);
1661
1671
*/
1662
1672
this . deleteObject = function ( groupName , obj ) {
1663
1673
/* delete from group */
1664
- var objs = obj . map [ groupName ] ;
1665
- for ( var name in objs ) {
1666
- objs [ name ] === obj && ( delete objs [ name ] ) ;
1667
- }
1674
+ if ( obj . map ) {
1675
+ var objs = obj . map [ groupName ] ;
1676
+ for ( var name in objs ) {
1677
+ objs [ name ] === obj && ( delete objs [ name ] ) ;
1678
+ }
1668
1679
1669
- /* delete from map */
1670
- obj . map && obj . setMap && obj . setMap ( null ) ;
1680
+ /* delete from map */
1681
+ obj . map && obj . setMap && obj . setMap ( null ) ;
1682
+ }
1671
1683
} ;
1672
1684
1673
1685
/**
0 commit comments