Angular5はAngularJSからAngularへのアップグレートの新しい方法を導入しました - downgradeModule
この種のハイブリッドアプリケーションでは、熱心な変更検出に関する問題を解決する必要があります。これまでAngular4ではUpgradeModule
を使用していましたが、変更検出のためにパフォーマンスに問題がありました。今私はdowngradeModule
を使用しようとしています。この手法では、AngularJSが最初に開始され、次にdowngradeModuleがAngularを開始します。このように、AngularZoneの外で走っているAngularJSは、何が変化検出を落とすべきですか? "メイン"downgradeModuleはハイブリッドアプリケーションのAngular5部分を開始しません
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app.module';
import {enableProdMode, StaticProvider} from '@angular/core';
import { downgradeModule } from '@angular/upgrade/static';
enableProdMode();
declare var angular: any;
const bootstrapFn = (extraProviders: StaticProvider[]) => {
const platformRef = platformBrowserDynamic(extraProviders);
return platformRef.bootstrapModule(AppModule);
};
const myDowngradedModule = downgradeModule(bootstrapFn);
angular.bootstrap(document.documentElement, [
'legacyApp',
myDowngradedModule
]);
として.angular-cli.json
に指摘されて
main.ts
は、AngularJSはうまく起動しますが、角度はません。コンソールにエラーはありません。ヒントはありません。ちょうどメインセレクタ。 <my-app>
は評価されません。 app.module.ts
で変更された内容は、以前の作業バージョンのコンテキストでは変更されていません。主要な1がdowngradeModule
については何も言っていないので、私は、いくつかのドラフト角度のドキュメントを使用
@NgModule({
imports: [
CommonModule,
BrowserModule,
UpgradeModule,
RouterModule.forRoot([], { initialNavigation: false })
],
providers: [{provide: APP_BASE_HREF, useValue : '/shop/' }],
declarations: [ AppComponent ],
bootstrap: [ AppComponent ]
})
export class AppModule {
ngDoBootstrap() {}
}
。 https://pr18487-aedf0aa.ngbuilds.io/guide/upgrade-performance
Angular5の部分が開始されていない理由は誰にも分かりますか?
情報目的のためだけに、main.ts
のUpgradeModule
との以前の外観はかなりうまく機能しましたが、検出が変更されました。
platformBrowserDynamic().bootstrapModule(AppModule).then(platformRef => {
const upgrade = platformRef.injector.get(UpgradeModule) as UpgradeModule;
upgrade.bootstrap(document.documentElement, ['legacyApp']);
platformRef.injector.get(Router).initialNavigation();
});
私は以前は試していませんでしたが、今は変わりません。あなたの投稿「downgradeModuleを併用する...」を見て、同じことをやってみました(私が知らないdecorateModuleRefを除いて)、そして 'main.ts'では' angular.bootstrap(document.documentElement [] ..私はエラーモジュール 'legacyApp 'が利用できません! – LancerX
LancerX、私は角度の宣言的なブートストラップを使用しています1.xのhtmlファイル... – theOwl