Sto sviluppando un app Angular2, e ho dovuto affrontare un problema:Angular2: i dati a due vie che vincolano componente inserito dinamicamente utilizzando DynamicComponentLoader
Ho una serie di oggetti diversi che possono essere selezionati tramite interfaccia utente. Ognuno di questi oggetti ha una serie di opzioni (diverse per oggetti diversi) che possono essere modificate usando l'interfaccia utente. Ora, sto usando DynamicComponentLoader per inserire un componente specifico per l'oggetto attualmente selezionato, in modo che possa gestire correttamente le sue opzioni. Il problema è che non so come associare i dati dell'oggetto attualmente selezionato a un componente di opzioni inserito dinamicamente.
@Component({
selector: 'dynamic',
template: `<div>Options:</div>
<div>Property1: <input type="number" /></div>
<div>Property2: <input type="text" /></div>`
// template: `<div>Options:</div>
// <div>Property1: <input type="number" [(ng-model)]="currentSelection.property1" /></div>
// <div>Property2: <input type="text" [(ng-model)]="currentSelection.property1" /></div>`
})
class DynamicComponent {
}
@Component({
selector: 'my-app',
template: `
<div>
<h2>Selected: {{currentSelection.name}}!</h2>
<div #container></div>
</div>
`
})
class App {
currentSelection = {name: 'Selection1', property1: 10, property2: 'test'};
constructor(private loader: DynamicComponentLoader, private elementRef: ElementRef) {
loader.loadIntoLocation(DynamicComponent, elementRef, 'container');
}
}
Here è un plunker per aiutarvi a capire la mia domanda:
l'unico esempio c'è in giro è questo https://github.com/angular/angular/blob/1aeafd31bd440a4997362e66738926387940fc1e/modules/angular2_material/src/components/dialog/dialog.ts –