假设我们在 UI 中有很多项目。当用户单击一个项目时,UI 应该呈现一个弹出/对话/覆盖元素,其中包含一些选项、操作等。
目前我看到两个选项:
复制每个项目的叠加元素并将其隐藏,直到单击关联的项目。就像在这个小提琴中一样:http: //jsfiddle.net/urPww/1/
<div ng-show="currentItem"> showing options for: {{currentItem.name}} </div> <li ng-repeat="item in items" ng-click="showOptions(item)"> {{item.name}} </li>
放置一次覆盖 UI 并跟踪最后单击的项目。演示:http: //jsfiddle.net/aVnPT/5/
<li ng-repeat="item in items" ng-click="showOptions(item)"> {{item.name}} <span ng-show="item.showingOptions"> <br/>showing options for: {{item.name}} </span> </li>
第一种解决方案效率不高。然而,除了第二个中单击的元素之外,我无法找到一种干净的方式来显示覆盖 UI。有任何想法吗?