2017-11-08 9 views
0

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.tsUpgradeModuleとの以前の外観はかなりうまく機能しましたが、検出が変更されました。

platformBrowserDynamic().bootstrapModule(AppModule).then(platformRef => { 
    const upgrade = platformRef.injector.get(UpgradeModule) as UpgradeModule; 
    upgrade.bootstrap(document.documentElement, ['legacyApp']); 
    platformRef.injector.get(Router).initialNavigation(); 
}); 

答えて

0

LancerX、AppComponentをAppModuleのentryComponentsに追加しようとしましたか?

+0

私は以前は試していませんでしたが、今は変わりません。あなたの投稿「downgradeModuleを併用する...」を見て、同じことをやってみました(私が知らないdecorateModuleRefを除いて)、そして 'main.ts'では' angular.bootstrap(document.documentElement [] ..私はエラーモジュール 'legacyApp 'が利用できません! – LancerX

+1

LancerX、私は角度の宣言的なブートストラップを使用しています1.xのhtmlファイル... – theOwl

関連する問題