Używam ImmutableJS z Angular 2 od pewnego czasu, ze względu na jego wydajność w wykrywaniu zmian. Patrz: here.Jednak nie jestem do końca pewien, dlaczego Immutable domyślnie współpracuje z Angularem 2. W jaki sposób wie, jak iterować wartości i wyświetlać je, gdy nie ma jawnej tablicy? Czy po prostu wywołuje toJS()
za każdym razem, gdy uzyskuje dostęp do wartości kolekcji? Czy implementuje jakąś metodę, którą Angular 2 automatycznie wywołuje?Jak działa ImmutableJS z Angular 2?
A jeśli tak, to czy istnieje sposób zdefiniowania własnych kolekcji, które również wdrażają tę metodę?
Przykład:
Component({
selector: 'list',
template: '<ul><li *ngFor="#item of items">{{ item.id }}</li></ul>',
directives: [CORE_DIRECTIVES]
})
export class SiteComponent {
items: Immutable.List<Item>;
}