【发布时间】:2014-05-30 05:33:55
【问题描述】:
我有一个角度应用程序,可以根据地图数据构建区域列表。这些区域使用 ng-repeat 显示在 div 的侧边栏中,并作为矢量特征显示在地图上。当用户在地图上选择一个区域时,我需要滚动到侧边栏中该区域的 DIV。 jQuery 可以在给定元素的情况下执行 scrollTo 操作,并且我知道选择了哪个区域;我可以获得与该项目匹配的 DIV 的引用吗?
我不能使用索引,因为可能对 ng-repeat 数组进行排序或过滤。还有其他选择吗?
编辑:
以下是一些相关代码:
<div class="turf"
ng-repeat="zone in layers.zones.features"
ng-class="{
selected: zone === selectedZone && zone !== highlightedZone,
hover: zone === highlightedZone
}"
ng-click="selectZone(zone); $event.stopPropagation()">
<h2>{{zone.name}}</h2>
<input type="text" class="form-control" ng-model="zone.name" />
{{zone.users}} users present
</div>
当点击地图上的这些区域之一时,Openlayers 将调用一个函数:
zoneLayer.events.register("featureselected", null, function(e){
var zone=e.feature;
var element = null; // how do I get the element?
$(element).scrollTo(); // or similar
});
【问题讨论】:
-
请发布您的一些代码。您要做的是为每个侧边栏 div 附加一个唯一的 id,并将该 id 存储在相应的地图区域中的某处——但如何做到这一点完全取决于您如何生成地图。
-
我会发布一些代码,但它是非常通用的 ng-repeat 东西,并且处理程序都是 OpenLayers。
标签: javascript jquery angularjs openlayers