Документы DynamicContentLoader не объясняют, как я могу правильно загружать вхождения дочерних компонентов. Скажем, у меня есть ребенок:
@Component({
selector: 'child-component',
template: '<input type="text" [(ngModel)]="thing.Name" />'
})
class ChildComponent {
@Input() thing : any;
}
и родительский тип:
@Component({
selector: 'my-app',
template: 'Parent (<div #child></div>)'
})
class MyApp {
thing : any;
constructor(dcl: DynamicComponentLoader, elementRef: ElementRef) {
dcl.loadIntoLocation(ChildComponent, elementRef, 'child');
}
}
Как перейти к передаче thing
в дочерний компонент, так что эти два компонента могут быть связаны данными с одной и той же вещью.
Я попытался сделать это:
@Component({
selector: 'my-app',
template: 'Parent (<div #child></div>)'
})
class MyApp {
thing : any;
constructor(dcl: DynamicComponentLoader, elementRef: ElementRef) {
dcl.loadIntoLocation(ChildComponent, elementRef, 'child').then(ref => {
ref.instance.thing = this.thing;
});
}
}
Такие работы, но они не синхронизированы, как вы ожидали.
В основном я пытаюсь достичь того же, что было бы достигнуто с помощью ng-include в angular 1, где ребенок является динамически определенным компонентом и разделяет модель с ее родителем.
Спасибо заранее...