【发布时间】:2017-11-13 21:52:25
【问题描述】:
我有一个 ngSwitch 可以将指令更改为我需要的。每个案例内部都是完全相同的代码(大约 100 行)。
<div [ngSwitch]="i + 1">
<div *ngSwitchCase="1" directive1> Same content, many divs, many ngFor.. </div>
<div *ngSwitchCase="2" directive2> Same content, many divs, many ngFor.. </div>
<div *ngSwitchCase="3" directive3> Same content, many divs, many ngFor.. </div>
</div>
到目前为止工作正常,但我有许多未使用的代码,并且在所有情况下都必须更改简单的事情(目前为 10 个)。
有没有办法在案例中使用相同的内容或将指令定义切换到更舒适的方式?
我尝试将内容导出到自定义组件并将其导入那里,但这会导致很多问题(我有超过 50 个 @Inputs 并且需要大型服务来在父组件和所有其他姐妹和兄弟组件之间进行通信)
【问题讨论】:
-
如果到处都有相同的内容,为什么要这样做?
-
@GünterZöchbauer 因为我需要不同的指令来根据索引“i”触发特定事件。例如。循环 1 之外的元素应该是可点击的,循环 2 之外的元素应该是可拖动的,循环 3 之外的元素应该有鼠标悬停
标签: angular angular2-directives