【发布时间】:2020-07-07 12:38:12
【问题描述】:
我有一个模板:
<div *ngFor="let order of orders" (click)="showReglamentList =! showReglamentList">
<app-dropdown-reglaments *ngIf="showReglamentList" [depid]="order.depId"></app-dropdown-reglaments>
</div>
当用户点击行时,它会切换showReglamentList,因此组件app-dropdown-reglaments 被激活。
但现在它通过服务器请求激活每行(循环)中的所有组件。
我可以这样解决:
let rowComponentVisibility = {};
orders.foreach((item, index) => rowComponentsVisibility[index] = false);
然后使用:
*ngIf="rowComponentsVisibility[index]"
问题是我尝试缓存它,并且不再初始化组件,只是隐藏/显示它之前是否已初始化。
如何解决?
【问题讨论】:
-
你能解释一下吗,你的意思是什么?
-
如果我理解正确:你有一个订单列表,当你点击一个订单时,它应该请求一些详细信息并显示它们?问题是当你点击一个加载每个订单时?如果问题只是缓存组件,您应该使用 css 可见性(例如,使用带有 rowComponentsLoaded 的 ngIf 并在 rowComponentSVisibility 上使用 ngClass 设置可见性)
-
是的,但是第一次应该加载组件(请求发送),第二次我只需要/显示/隐藏它
-
可能是用ViewChild?
标签: angular angular-ng-if