【发布时间】:2016-06-08 23:08:48
【问题描述】:
我有一个用 javascript 编写的 ng1 组件作为 requirejs 模块。 我需要在我的 ng2 组件中使用这个组件(直到我的旧 ng1 应用程序完全移植到 ng2)。 这是plnkr:https://plnkr.co/edit/IYuoZZE4sPGr97pxB04l?p=preview 这是我的引导逻辑:
import {App} from './app';
import {upgradeAdapter} from './adapter';
var appComponent = upgradeAdapter.downgradeNg2Component(App);
requirejs( ['ng1App'],
function(ng1App) {
angular.module('ng1App').directive('myApp',appComponent);
// following line throws error
upgradeAdapter.bootstrap(document.body, ['ng1App']);
} );
它给了我以下错误
angular2-polyfills.js:286 Uncaught Error: AngularJS v1.x is not loaded!
欣赏任何指针。
我的另一个问题是如何在我的 ng2 组件中为单个 ng1 组件导入 requirejs 模块:
import {Component} from '@angular/core'
import {upgradeAdapter} from './adapter';
// How do i dynamically load the ng1-comp rquirejs module here?
@Component({
selector: 'my-app',
providers: [],
template: `
<div>
<h2>Hello {{name}}</h2>
</div>
<ng1-comp></ng1-comp>
`,
directives: [upgradeAdapter.upgradeNg1Component('ng1Comp')]
})
export class App {
constructor() {
this.name = 'Angular2 (Release Candidate!)'
}
}
【问题讨论】:
-
为什么不将您的 ng1 组件升级到 angular 2?应该很简单,app.module('mymodule').component('mycomp', {controller:{} }...