【发布时间】:2015-06-11 19:40:08
【问题描述】:
- 我有 2 个指令:
wa-hotspots&wa-tooltips。 - 在
wa-hotspots的ng-mouseover上,它采用wa-hotspot的$index 并通过匹配索引通过ng-class:on和ng-style="tooltipCoords"设置wa-tooltip的可见性和位置。 - 注意:由于
wa-hotspots和wa-tooltips共享同一个集合page.hotspots,因此它们通过ng-repeat共享相同的索引
问题:
当您将鼠标悬停在wa-hotspots 上时,它会将ng-style 位置设置为wa-tooltips 中的所有元素。我只希望它设置正确的匹配索引。由于可见性由 ng-class 控制,这并不重要,但似乎这是可以避免的额外开销。
因此:
问题:
如何确保我的 ng-style 没有在 wa-hotspots 悬停时设置所有 wa-tooltips 的样式?而是仅设置与正确共享索引匹配的工具提示样式?
<ul id="wa-page-{{page.pageindex}}" class="wa-page-inner" ng-mouseleave="pageLeave()">
<li wa-hotspots
<map name="wa-page-hotspot-{{page.pageindex}}">
<area ng-repeat="hotspot in page.hotspots"
class="page-hotspot"
shape="{{hotspot.areashape}}"
coords="{{hotspot.coordinatetag_scaled}}"
ng-mouseover="showTooltip($index, hotspot.coordinatetag_scaled)"
ng-mouseout="hideTooltip()">
</map>
</li>
<li class="tooltip-wrapper">
<ul class="tooltip">
<li wa-tooltips
ng-repeat="hotspot in page.hotspots"
ng-class="{on: hovered.index == $index}"
ng-mouseover="hovered.active == true"
ng-mouseout="hovered.active == false"
ng-style="tooltipCoords" hotspot="hotspot">
</li>
</ul>
</li>
</ul>
工具提示:
【问题讨论】:
标签: javascript angularjs angularjs-ng-repeat directive ng-style