DynamicComponentLoader is now deprecated and doesn't fire events propely.
Use ComponentResolver with ViewContainerRef.
import { Directive , Input, OnInit, ComponentResolver,ViewContainerRef }
from '@angular/core';
@Directive({
selector:'[yourSelector]'
})
export class YourDirective implements OnInit{
constructor(
private resolver:ComponentResolver,
private viewContainerRef:ViewContainerRef
){}
ngOnInit(){
//Magic!
this.resolver.resolveComponent(this.content)
.then(cmpFactory => {
const injector = this.viewContainerRef.injector;
return this.viewContainerRef.createComponent(cmpFactory, 0,
injector);
});
}
}
W dniu niedziela, 10 stycznia 2016 05:14:30 UTC+1 użytkownik Jed napisał:
>
> I know this reply is a little late to the party, however it was one of the
> bigger issues that I just faced and overcame and this thread was one of the
> top results in google. (Though I understand we're now in a later build of
> Angular2)
>
> I just managed to get a similar functionality to ng-include by using
> DynamicComponentLoader
>
> import {Component, View, DynamicComponentLoader, Injector} from
> 'angular2/core';
>>
>> //...
>> constructor(dynamicComponentLoader:DynamicComponentLoader,
>> injector:Injector) {
>> dynamicComponentLoader.loadAsRoot(ChildComponentName,
>> '#TargetElementID', injector);
>> }
>>
>>
> Hope this helps anybody on the same issue. (Angular build used:
> Angular2.beta0)
>
> On Wednesday, August 12, 2015 at 12:31:18 PM UTC+1, Pete Moss wrote:
>>
>> We are trying to build a metadata-driven UI for our application and we
>> are considering using Angular2 to build it. One question we have is that
>> we'd like to build a somewhat generic parameter-driven component whose view
>> template is dynamically rendered by the server.
>>
>> I did a proof-of-concept in Angular1 by doing something like this:
>>
>> <ng-include src="ctrl.template"></ng-include>
>>
>> where ctrl.template is a controller var specifying a URL that is
>> dynamically set in the controller. This seemed to work for me. But, I
>> couldn't get <ng-include> to work at all for me in Angular2. Will this
>> technique work in Angular2?
>>
>> Is there any way to dynamically inject view code into an Angular2
>> component?
>>
>> Thanks,
>> Pete
>>
>>
>>
--
You received this message because you are subscribed to the Google Groups
"AngularJS" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/angular.
For more options, visit https://groups.google.com/d/optout.