Вы отключаете ChangeDetectorRef после поворота виртуальной машины, потому что он находится внутри setTimeout.
setTimeout(() => view.detach());
Таким образом, Angular выполняет все циклы обнаружения изменений, которые происходят во время начальной загрузки приложения, и запускается 3 раза.
Прочитайте, почему это происходит так много раз здесь:
Но если вы удалите setTimeout
, тогда ваш шаблонне будет отображаться вообще. Директива
*oneTime
предохраняет вас от предстоящих циклов обнаружения изменений, которые произойдут после любого события DOM или асинхронных вызовов.
Как было правильно замечено, вы можетепользовательский чистый канал для повышения производительности вашей части кода.