如何从ES5引导angular2组件?

时间:2017-10-25 15:39:41

标签: angular ecmascript-5

我有一个vanilla ES5脚本,我试图在运行时创建一个angular2组件并像这样引导它,

var mycomp = require('complibrary').mycomponent;
document.addEventListener('DOMContentLoaded', function() {
ng.platformBrowserDynamic.bootstrap(mycomp);
});

考虑complibrary是我们内部开发的一个单独的angular2组件库。 mycomponent是我们导出为ES5代码使用的组件之一。我们使用汇总来吐出我们组件的最终umd定义。我的组件的摘录可以在下面看到。

var mycomponent = (function () {
function mycomponent() {
    this.name = "Abhang Rane";
}
mycomponent = __decorate([
    _angular_core.Component({
        selector: 'mycomponent',
        template: '<h1>{{name}}</h1>'
    }),
    __metadata('design:paramtypes', [])
], mycomponent);
return mycomponent;
}());

这适用于角度为2.0.0.rc1,但是在角度为2.2及更高版本的情况下,platformBrowserDynamic上没有可用的引导方法。有没有办法用最新的角度2构建实现这一目标?最好不要改变我的组件...

1 个答案:

答案 0 :(得分:0)

Angular 2.0.0 RC5中引入了

Angular modules作为AngularJS模块的直接继承者。

this ES5 example所示,它是:

platformBrowserDynamic().bootstrapModule(AppModule);

应该引导的组件应该定义相应的模块:

var AppModule = NgModule({
  declarations: [AppComponent],
  bootstrap: [AppComponent]
})
.Class({ constructor: function () {} });