Проблема здесь в том, что после обновления значения оно не будет отображаться в представлении до завершения следующего цикла обнаружения изменений, который будет после выполнения печати. Вы можете использовать setTimeout
, чтобы исправить это, но это было бы скорее взломом IMO.
Вместо этого вы можете использовать detectChanges
, чтобы принудительно вызвать обнаружение изменений вручную. Таким образом, новое значение будет отражаться на виде и только после этого будет выполнена печать.
import { ChangeDetectorRef } from '@angular/core';
constructor(private cd: ChangeDetectorRef) { }
// ...
obj1.attr1 = "new value";
this.cd.detectChanges();
window.print();