使用字符串名称参数在 RC5+ 中动态加载组件
Dynamic component loading in RC5+ using string name parameters
在 RC5 之前,我是这样动态加载组件的:
System.import('path/to/MyComponent')
.then(fileContents => fileContents['MyComponent'])
.then(component => {
this.dynamicComponentLoader.loadNextToLocation(component, ..)
.then(() => {
...
});
});
从 RC5 开始,这不起作用,因为 DynamicComponentLoader
已弃用。问题是它的前身 ComponentFactoryResolver
将类型作为参数。我需要一种使用字符串名称加载组件的方法。我该怎么做?
设法做到这样:
System.import('path/to/MyComponent')
.then(fileContents => fileContents['MyComponent'])
.then(component => {
let factory = this.componentFactoryResolver.resolveComponentFactory(component);
this.container.createComponent(factory); //container: ViewContainerRef
});
在 RC5 之前,我是这样动态加载组件的:
System.import('path/to/MyComponent')
.then(fileContents => fileContents['MyComponent'])
.then(component => {
this.dynamicComponentLoader.loadNextToLocation(component, ..)
.then(() => {
...
});
});
从 RC5 开始,这不起作用,因为 DynamicComponentLoader
已弃用。问题是它的前身 ComponentFactoryResolver
将类型作为参数。我需要一种使用字符串名称加载组件的方法。我该怎么做?
设法做到这样:
System.import('path/to/MyComponent')
.then(fileContents => fileContents['MyComponent'])
.then(component => {
let factory = this.componentFactoryResolver.resolveComponentFactory(component);
this.container.createComponent(factory); //container: ViewContainerRef
});