У меня есть странная проблема, которую я не могу решить в течение нескольких часов.Angular2 private variable не обновляется в ngOnChanges()
В моем компоненте у меня есть:
@Input() content : string;
private contentPreview : any;
ngOnChanges(changes: SimpleChanges) {
this.contentPreview = changes['content'].currentValue;
console.log(changes['content'].currentValue); // <-- WORKS
}
Переменная this.contentPreview не изменяется. Если я попытаюсь отобразить его, он останется неопределенным. Даже если я попробую this.contentPreview = "X"; он остается неопределенным везде в компоненте.
Я что-то упустил, или это ошибка?
Возможно, это связано с тем, что цикл обнаружения изменений уже завершен. Таким образом, одно изменение «content» запускает hook onChanges, оно обновляет contentPreview var, но это конец цикла обнаружения изменений, после чего DOM не обновляется после этого. – MikeOne
Возможно, вы можете решить это с помощью крюка doCheck, найти здесь: https://angular.io/docs/ts/latest/guide/lifecycle-hooks.html#!#onchanges – MikeOne
Майк, спасибо! Я получаю точку цикла. Однако я попытался отобразить приватную переменную после другого события (например, щелкнуть по компоненту), и значение не было сохранено. Так оно и должно работать? –