1
我讀Angular 2 upgrade guide併成功引導混合應用程序(ng1作爲基本代碼,現在逐漸將組件和服務重寫爲ng2)。
現在我不明白的是如何使用第三方ng1模塊,讓angular2將它們注入到我的HeaderComponent中?
我剛剛看到升級提供程序和組件的示例,但我認爲我仍然對angular2中的模塊概念感到困惑,所以我不知道如何升級ng1模塊。有人可以請賜教嗎?如何升級angularjs模塊注入angular2組件
upgrade_adapter.ts
import {AppModule} from './app.module';
import {UpgradeAdapter} from '@angular/upgrade';
export const upgradeAdapter = new UpgradeAdapter(AppModule);
app.module.ts
// imports...
@NgModule({
imports: [
BrowserModule,
HttpModule
],
declarations: [
HeaderComponent
],
providers: [ MyService ]
})
export class AppModule { }
index.ts
import { upgradeAdapter } from './upgrade_adapter';
// more imports...
angular.module(MODULE_NAME, [
//...
])
// HeaderComponent uses a ng1 3rd party module, how to use that module in that component
.component('header', upgradeAdapter.downgradeNg2Component(HeaderComponent))
// adding some ng1 components...
.factory('myService', upgradeAdapter.downgradeNg2Provider(MyService));
// bootstrap the application
angular.element(document).ready(function() {
upgradeAdapter.bootstrap(document.body, [MODULE_NAME]);
});
編輯:
第三方模塊是用JS編寫的。
的lib /角模塊/通信/ index.js
var communicationModule = angular.module('communication', [])
.factory('communication', require('./communication.factory'));
module.exports = communicationModule.name;
我想升級整個NG1 ** **模塊,它本身包含serveral的工廠,需要其他一些第三方庫這並不在我的工作的情況下(例如角平移)。因爲沒有_upgradeAdapter.upgradeNg1Module_或其他東西,我想沒有辦法重用我現有的ng1模塊。 – lenny
不是我所見過的,據我所知,你必須基本上在ng2中聲明模塊並重新聲明所有的服務和組件。這應該仍然適用於第三方庫。 – Oliver