【发布时间】:2017-09-15 22:25:16
【问题描述】:
我正在从 angular.js 切换到 angular2/4 并且无法理解我应该如何实现以下模式...
<div *ngFor="let item of items" (mouseenter)="focus=true" (mouseleave)="focus=false">
<span>{{text}}</span>
<i *ngIf="focus" class="fa fa-pencil" aria-hidden="true"></i>
</div>
在 Angular.js 中,为 ng-for 的每个元素迭代创建了一个 focus 标志
但在 Angular 中,focus 标志对所有迭代的 div 都是全局的,导致当鼠标进入单个 div 时会显示所有铅笔图标。
我对如何复制旧的 Angular.js 功能感到困惑?
(我已经通过在每次迭代中使用子组件暂时“解决”了这个问题,但是,这似乎是一种锤子方法,尤其是在代码非常小的情况下......画线在哪里?)
谢谢 西蒙·普莱斯
【问题讨论】:
-
您是否尝试过设置
item.focus而不仅仅是focus? -
是的,这是我的第一种方法,但是用视图标志来装饰数据项似乎很脏。
标签: angular mouseenter ngfor angular-ng-if