Мои вопросы относятся к Angular (2) с использованием вилки RC1 из примера plunkr angular.io. Функция привязки данных в шаблоне ngFor работает так, как если бы обнаружение изменений было истинным для любого события за пределами ngFor. В моем примере нажатие кнопки за пределами ngFor.
Я пробовал использовать функцию trackBy и без нее (хотя в настоящее время у нее плохая документация, поэтому я не уверен, правильно ли я ее использую); Я не могу понять, как убедиться, что каждое действие не вызывает перерисовку ngFor, поскольку это может быть очень дорогостоящим.
Результат журнала при нажатии:
- кнопка
- рисунок
- рисунок
Вы можете увидеть проблему в реальном времени на этом plunkr, просмотрев журнал консоли:
import { Component } from '@angular/core';
@Component({
selector: 'my-app',
template: `
<button (click)="clickOustideFunction()" >hi</button>
<h1 *ngFor="let d of data;trackBy:a">
My First Angular 2 App{{drawingForFunction()}}
</h1>`
})
export class AppComponent {
data= [{"a":1}, {"a":2}];
clickOustideFunction(): void {
console.log("button");
}
drawingForFunction(): void {
console.log("drawing");
}
}