Vorrei poter utilizzare la sintassi del modello Angular2 durante la creazione di Google Maps InfoWindow.Come posso eseguire il rendering di un componente Angular2 su una stringa?
Per quanto posso dire, questo significa passare un componente come stringa di modello alla proprietà content
nell'oggetto di costruzione InfoWindow
.
Se questo è il caso, credo di aver bisogno di stringificare il template del componente. È corretto (e possibile)?
Ecco un esempio di quello che penso ho bisogno di fare:
// Component
import {Component} from 'angular2/core';
import {Thing} from './something/in/my/app/thing.model.ts';
@Component({
selector: 'my-infowindow',
template: `<p>This is an infowindow for {{ something.name }}</p>`
})
export class MyInfoWindowComponent {
constructor(public something: Thing) {}
}
// Implementation
import {Thing} from './something/in/my/app/thing.model.ts';
import {MyInfoWindowComponent} from './path/to/infowindow.component';
/* { ...stuff... } */
private _buildInfoWindow(thing: Thing): google.maps.InfoWindow {
return new google.maps.InfoWindow({
/* v this is what I want v */
content: new MyInfoWindowComponent(thing).toString()
/*^this is what I want^*/
});
}
Date un'occhiata a 'ElementRef': https : //angular.io/docs/ts/latest/api/core/ElementRef-class.html o 'ViewChild': https://angular.io/docs/ts/latest/api/core/ViewChild-var.html – Langley
Non riesco a vedere il punto di creare un componente Angolare e quindi lo stringa per passarlo a infowindo w. Perché non passi una stringa invece. È perché vuoi usare l'associazione dati? Questo non verrà aggiornato dopo averlo comunque indirizzato a infowindow. –
@ GünterZöchbauer - a destra, non ho bisogno del databinding - la sagoma del modello sembra molto più bella di un terribile costruttore di corde. (specialmente per 'ngIf' e' ngFor'). Ha senso? – drewwyatt