Tôi có thành phần Angular 2 sử dụng *ngFor
để hiển thị một mảng lồng nhau các số.Làm cách nào để sử dụng lại các phần tử của ngFor ngay cả khi danh sách thay đổi tham chiếu?
@Component({
selector: 'app',
template: `
<div *ngFor="let row in data">
<div *ngFor="let curve in row">
<chart [data]="curve">
</div>
</div>
`,
directives: [Chart],
})
export default class App {
data: number[][][];
}
Khi tôi thay đổi data
, góc thay thế <chart>
yếu tố, ngay cả khi các mảng mới có kích thước tương tự. Tôi chỉ muốn cập nhật các thuộc tính của biểu đồ nhưng giữ nguyên các phần tử (để tôi có thể tạo hiệu ứng thay đổi dữ liệu).
Có thể hiểu được rằng Angular sẽ thay thế các phần tử vì mảng mới là tham chiếu đối tượng mới. Nhưng làm thế nào tôi có thể phá vỡ điều này?
Bạn có thể sử dụng [ngForTrackBy] (https://angular.io/docs/ts/latest/guide/template-syntax.html#!#ngfortrackby) không? – Michael
@Michael Đó chính xác là những gì tôi đang tìm kiếm: 'trackByIndex (chỉ mục: số, dữ liệu: bất kỳ) {return index; } '. Bạn có thể làm cho câu trả lời này được không? – danijar
+1 Câu hỏi này có số lượt xem và số lượt truy cập đáng lo ngại. ReactJS, ví dụ, ném một hissy nếu bạn quên cung cấp cho các mục danh sách của bạn một thuộc tính 'key' để danh sách có thể được trả lại về mặt kinh tế. –