2016-08-25 2 views
2

У меня есть два компонента в моем приложении с угловым 2: компонент A (родительский элемент) и компонент B (дочерний элемент).Угловая 2 нагрузки дочерних компонентов до данных, переданных с @input()

Когда я получаю данные (myData) от A до B с помощью @Input(), я получаю свои данные в моем B (дочернем компоненте), но проблема в том, что дочерний компонент загружает BEFORE myData, и я получил неопределенное значение, единственное путь a can console.log (myData) находится в ngOnDestroy hook!

Как справиться с таким видом загрузки?

+0

попытаться загрузить данные в конструкторе компонента – rashfmnb

+0

Непонятно, почему это вызывает проблемы. Вы можете использовать крючки жизненного цикла 'ngOnChanges()', который вызывается каждый раз, когда '@Input()' обновляется снаружи. 'ngOnInit()' вызывается после первого вызова 'ngOnChanges()'. Если это не работает, пожалуйста, предоставьте больше кода, демонстрирующего то, что вы пытаетесь выполнить. Я не могу сейчас, что происходит на вашем сайте, не видя кода. –

ответ

-2

Вы можете найти хороший пример, чтобы сделать это в примере проекта here.

Проверить app.service.ts код.

Вам необходимо описать глобальную службу, которая будет хранить ваши данные, которые будут совместно использоваться между компонентами.

-1

Пройдя через ад в течение двух дней, я наткнулся на это решение, которое работало как шарм. ngOnChanges(value:any):void { //your code } reference link

2

Это решение, которое было самым легким для меня. Используйте * ngIf в своем родительском компоненте, чтобы задержать инициализацию дочернего компонента. Вы привяжете дочерний компонент только в том случае, если значение «myData» имеет значение.

Сообщите мне, если код кода поможет, и я могу что-то собрать. Надеюсь это поможет. Ура!

Смежные вопросы