angular2 RC5中dynamicComponentLoader的替代方案
Alternative for dynamicComponentLoader in angular2 RC5?
我要在RC5中创建一个angular2应用程序,我想在其中动态加载组件。
在RC1,我做了同样的使用dynamicComponentLoader:
@Component({
moduleId: module.id,
selector: 'generic-component',
templateUrl: 'generic.component.html',
styleUrls: ['generic.component.css']
})
export class GenericComponent implements OnInit {
@ViewChild('target',{read:ViewContainerRef}) target;
@Input('component-name') componentName:string;
@Input('component-info') componentInfo:string;
@Input('component-model') componentModel:Object;
keysRegister:string[]=[
'users',
'employee'
];
componentNames:string[]=[
'UserComponent',
'EmpComponent'
];
constructor(private dcl:DynamicComponentLoader) {}
ngOnInit() {
}
ngAfterViewInit(){
let componentIndex=this.keysRegister.indexOf(this.componentName);
this.dcl.loadNextToLocation(StandardLib[this.componentNames[componentIndex]],this.target)
.then(ref=>{
ref.instance.componentModel=this.componentModel;
});
console.log("GenericComponent...... "+this.componentName+" Loaded");
}
}
,当我想加载组件时,我会这样做:
<div *ngIf="columnModel" style="border:1px solid orange">
<generic-component
[component-name]="columnModel.componentName" <!-- I will pass *users* here -->
[component-model]="columnModel.componentModel"
[component-info]="columnModel.componentInfo"
></generic-component>
</div>
我尝试使用componentResolver,但我不能让它正确工作。输入吗?谢谢。
在RC5
中,您需要使用Compiler
中的compileComponentAsync()
方法。
下面是一个简单的例子:
constructor(private _comp: Compiler) {}
ngAfterViewInit(): void {
this._comp.compileComponentAsync(this.componentModel).then(a => this.target.createComponent(a));
}
下面是我的一个完整的例子:
https://github.com/flauc/ng2-simple-components/blob/master/src/modal/modal.component.ts相关文章:
- 轻量级zxcvbn替代方案
- 正在寻找比$(document).ready慢的$(window).load的替代方案
- ng映射方向备选方案
- 为什么$.brower被弃用?还有什么更好的替代方案
- 执行php函数的onclick事件的其他替代方案
- Android上URL方案的替代方案
- :not选择器不适用于ul类-备选方案
- 可以转换显示属性吗?如果没有,什么'这是最好的解决方案
- iPad虚拟键盘-哪一个-javasctript解决方案
- jqlite中.first()的替代方案
- AJAX HTTP基本身份验证解决方案
- 在chrome web商店中打开时,是否有允许执行内容/后台脚本的解决方案
- Chart.js-添加渐变而不是纯色-实现解决方案
- learnyounode杂耍异步解决方案不工作
- 想在jquery中设计一个配色方案
- 在lodash上有没有一个替代方案.merge.apply(_,x);其中x是对象的数组
- 了解因子分解解决方案
- 在Javascript中使用eval的替代方案
- 提交表单后的最佳解决方案
- 计时器在使用 jQuery 一分钟后没有触发,或者每 1 分钟后给出一些其他解决方案来触发功能