Poiché angular 2 non viene fornito con componenti completi completi, ho deciso di utilizzare bootstrap all'interno di angular 2. So che questa non è l'idea migliore in quanto interrompe il problema del virtual dome, ma non ho altra soluzione. Il problema che sto avendo è che il componente angular 2 non renderizzerà all'interno del popover html. qualcuno ha una soluzione per questo?Angular 2 Component all'interno del bootstrap popover
Sto guardando la classe Renderer e sembra essere la soluzione per me, ma non riesco a farlo funzionare. Ecco il codice:
mio componente padre che detengono il popover
ngAfterViewInit() { // viewChild is updated after the view has been initialized var elements = jQuery(this.elementRef.nativeElement).find('[data-toggle="popover"]'); jQuery.each(elements, jQuery.proxy(function(index, element){ var eventId = jQuery(element).prop('id'); jQuery(element).popover({ html : true, placement: 'top', container: 'body', content: this.getEventContent(eventId) }); }, this)); } getEventContent(eventId){ var selectedEvent = this.getEvent(eventId); var button = jQuery('<button type="button" class="btn register"></button>'); var angularViewHolder= jQuery('<div></div>'); this.renderer.createElement(angularViewHolder[0], 'event-view') button.attr('id', eventId); return selectedEvent.description + '<br />' + button[0].outerHTML + angularViewHolder[0].outerHTML; }
mio evento-view componente che ho bisogno di rendere la popover
import {Component, View} from 'angular2/core';
@Component({
selector: 'event-view',
template: '<div>Application details for application id: <h1>{{id}}</h1> will be loaded here!</div>',
inputs: ['id']
})
export class EventView {
id: string;
constructor() {
}
}
I penso che la mia soluzione sarà su Renderer.renderComponent ma non sono sicuro di come posso utilizzarlo.
Hai esaminato 'ng2-bootstrap'? –
Grazie Evan per il suggerimento. ng2-bootstrap non ha ancora il popover. Ha un suggerimento, ma è ancora troppo debole. –
@MohyEldeen prova [ng2-popover] (https://github.com/pleerock/ng2-popover) invece – pleerock