ハイブリッド アプリケーションの開発を開始しました。したがって、次の手順を実行しました。
- Angular 8 の依存関係を追加する
- 追加
polyfills.ts
ng-app
ルート index.html から属性を削除します- AngularJs アプリの手動ブートストラップを行う
私のAngular initモジュールはどのように見えますか:
@NgModule({
imports: [
BrowserModule,
UpgradeModule
]
})
export class HubAngularModule {
ngDoBootstrap() {
}
}
platformBrowserDynamic().bootstrapModule(HubAngularModule)
.then(platformRef => {
console.log("Bootstrapping in Hybrid mode with Angular & AngularJS");
const upgrade = platformRef.injector.get(UpgradeModule) as UpgradeModule;
upgrade.bootstrap(document.body, ['myAngularJsModule']);
});
私のindex.htmlはどのように見えますか:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<script src="dist/index.bundle.js"></script> <!--Webpack bundle-->
<link rel="stylesheet" href="dist/styles.css"/>
</head>
<body>
<div layout="column" layout-align="" ng-cloak>
<main-header></main-header> <!--AngularJS header component-->
<console-menu></console-menu> <!--AngularJS menu component-->
<md-content ui-view="main"></md-content> <!--AngularJS root ui-view-->
</div>
</body>
</html>
main-header、console-menu - AngularJS コンポーネントです。もちろん、その構成ng-app
は が提示されたときにうまく機能します。
私が期待するもの。ハイブリッド アプリは古い AngularJS アプリと同じように起動し、ログイン ページ、開始ページなどを表示できます。
私が実際に得たもの。AngularJS アプリは実際にはブートストラップです。メソッド app.module().run(...) が実行されていることがわかります。しかし、コンポーネントがロードされないため、空白のページしか表示されません。