从指令 AngujarJs 实例化映射
Instantiate map from directive AngujarJs
我做了一个指令,在我的网站上加载谷歌地图api:http://plnkr.co/edit/3009kInkBmiF9ksB3eg9?p=catalogue
我的问题是:实例化地图然后在不同的视图上添加一些点击侦听器的最佳方式是什么?
我正在使用 ngView 指令加载辅助视图:
'use strict';
var climbingApp = angular.module('climbingApp', ['ngRoute', 'maps'],
function( $routeProvider ){
$routeProvider.when('/', {
controller: 'Main'
});
$routeProvider.when ('/newSector', {
templateUrl: 'app/templates/newSector.html',
controller: 'addSector'
});
}
);
在 newSector 控制器中,我使用服务来添加侦听器:
climbingApp.factory('Markers', function( $rootScope ){
return {
addListener: function( mapInstance, callback ) {
google.maps.event.addListener(
mapInstance,
'click',
function( e ) {
var marker = new google.maps.Marker({
position: e.latLng,
map: mapInstance
});
$rootScope.$apply( function(){ callback( e ); });
}
);
}
}
});
但是这样做,我无法从主控制器中删除侦听器,因为我无法引用映射实例。任何线索我应该怎么做?
我是ng-map的创建者,谷歌地图angularjs指令称为ng-map。这不需要任何Javascript编码来获得简单的功能。
对于您的情况,使用该指令,您只需将"点击"属性添加到map
标签即可。
<map zoom="11" center="[40.74, -74.18]" on-click="myfunc()">
</map>`
更多细节可以在ng-map上找到。
相关文章:
- 如何在GoogleWeb工具包(GWT)中从JSNI调用接口(实例化)
- 如何在用户输入时实例化数组
- 在requirejs中共享实例化对象
- Mongoose TypeError:实例化模式类型的对象时,对象不是函数
- Angular重命名模块后未能实例化模块
- Backbone relational无法实例化两个RelationalModel对象
- 我应该如何用javascript实例化这个日期
- AngularJS出错-无法实例化模块
- 谷歌地图重叠MarkerSpiderfier实例化问题
- 未捕获错误:由于,[$injector:moduler]未能实例化模块polmgr
- ngRoute不是因果报应实例化的
- JavaScript 中的动态实例化
- 在文本框上绑定谷歌地点自动完成,而无需实例化谷歌地图
- UI5 路由不实例化视图
- 在 JavaScript 中,当我们实例化派生对象时,原型的函数隐藏在哪里
- 仅在需要时实例化聚合物元素
- 角度 JS 控制器未实例化
- 如何理解“当类实例化时,JavaScript静态方法也是不可调用的”
- 在 Typescript 中实例化对象,遵循松散耦合
- 从指令 AngujarJs 实例化映射