由于 Angular 2 没有提供完整的丰富组件,我决定在 Angular 2 中使用引导程序。我知道这不是最好的主意,因为它打破了虚拟圆顶问题,但我没有其他解决方案。我遇到的问题是 angular 2 组件不会在 popover html 中呈现。有人对此有解决方案吗?
我正在查看 Renderer 类,它似乎是我的解决方案,但我无法让它工作。这是一些代码:
我持有弹出框的父组件
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; }
我需要在弹出窗口中呈现的事件视图组件
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() {
}
}
我认为我的解决方案将在 Renderer.renderComponent 但我不确定如何使用它。