Как принудительно перепрофилировать компонент в Angular 2?

Как принудительно перепрофилировать компонент в Angular 2? Для целей отладки, работающих с Redux, я хотел бы заставить компонент повторно отобразить его представление, возможно ли это?

    Рендеринг происходит после обнаружения изменений. Чтобы принудительно изменить обнаружение изменений, чтобы измененные значения свойства компонента были распространены в DOM (а затем браузер отобразит эти изменения в представлении), вот несколько вариантов:

    • ApplicationRef.tick () – аналогично $rootScope.$digest() Углового 1. $rootScope.$digest() – т $rootScope.$digest() Проверяет полное дерево компонентов
    • NgZone.run (callback) – аналогично $rootScope.$apply(callback) – т $rootScope.$apply(callback) Оценивает функцию обратного вызова внутри зоны Angular 2. Я думаю, но я не уверен, что это завершает проверку полного дерева компонентов после выполнения функции обратного вызова.
    • ChangeDetectorRef.detectChanges () – аналогично $scope.$digest() – т.е. проверять только этот компонент и его дочерние элементы

    Вам нужно будет импортировать, а затем NgZone ApplicationRef , NgZone или ChangeDetectorRef в свой компонент.

    Для вашего конкретного сценария я бы рекомендовал последний вариант, если изменился только один компонент.

    tx, нашел обходной путь, в котором я нуждался:

      constructor(private zone:NgZone) { // enable to for time travel this.appStore.subscribe((state) => { this.zone.run(() => { console.log('enabled time travel'); }); }); 

    run zone.run заставит компонент повторно отобразить

    Метод ChangeDetectorRef

     import { Component, OnInit, ChangeDetectorRef } from '@angular/core'; constructor(private cdr: ChangeDetectorRef) { } selected(item: any) { if (item == 'Department') this.isDepartment = true; else this.isDepartment = false; this.cdr.detectChanges(); } 
    Давайте будем гением компьютера.