相关疑难解决方法(0)

Angular的*ngFor循环是如何实现的?

我想知道Angular的*ngFor指令实际上是如何工作的?我想知道使用该指令时发生的整个过程.

对于downvoters:我已经看过ng-for-of文件,虽然没有单一用法传递给*ngFor数组,例如join()我知道调用的方法.感谢您的支持:)以下是显示行为的plunker:https://plnkr.co/edit/IXVxWrSOhLBgvSal6PWL?p = preview

angular-directive angular

2
推荐指数
1
解决办法
2784
查看次数

Angular - 如何不重建使用 *ng 创建的列表,任何时候触发列表的每个元素上的事件

我有一个简单的<div>生成 using*ngFor指令列表,类似于

<div *ngFor="let item of items() | async ; let i=index" 
  [ngClass]="getItemClass(i)"
  (click)="itemClick(i)"</div>
Run Code Online (Sandbox Code Playgroud)

如您所见,该方法返回的 Observable 每次items()发出时都会异步填充列表。在我的情况下,这样的 Observable 是 a ReplaySubject,如果这对知道有任何用处。然后我<div>使用方法定义要应用于每个元素的类getItemClass

我还想使用方法对每个项目上的点击事件做出反应itemClick(i: number)

问题

任何时候div单击一个元素,即任何时候itemClick(i: number)运行该方法,似乎<div>都重建了整个s列表。我得出这个结论是观察到任何时候div点击一个元素,该items()方法也会运行。

<div>单击其中一个元素时是否可以避免重建列表?我已经设置changeDetectionOnPush但它似乎并没有解决我的问题。

angular angular-changedetection

0
推荐指数
1
解决办法
1069
查看次数