2016-08-19 15 views
2

私のangular2アプリケーションをブートストラップするときにMVCからいくつかのサーバー生成設定をangular2 appに渡したいと思います。設定はさまざまなサービスで必要です。以前のリリースのangular2では、bootstrapメソッドを呼び出すときにプロバイダとしてconfigを渡すことができましたが、このメソッドは最新のリリースでは非推奨になっており、platformBrowserDynamic.bootstrapModuleが使用されています。 bootstrapModuleメソッドには、プロバイダの提供を許可するcompilerOptionsパラメータがありますが、これらはコンポーネント/サービスにフィルタされていないようで、トピックに関するドキュメントを見つけるのには苦労しています。ブレイクラップ時にMVCからAngular2(RC.5)に値を渡す方法

Index.cshtml:

<script src="/lib/es6-shim/es6-shim.min.js"></script> 
<script src="/lib/systemjs/dist/system.src.js"></script> 
<script src="/lib/rxjs/bundles/Rx.min.js"></script> 
<script src="/lib/zone.js/dist/zone.min.js"></script> 
<script src="/lib/reflect-metadata/Reflect.js"></script> 
<script src="/app/systemjs.config.js"></script> 
<script type="text/javascript"> 
    var appConfig = { 
     prop1: '@Model.Prop1', 
     prop2: '@Model.Prop2', 
     prop3: '@Model.Prop3' 
    }; 
    System.import('/app/main') 
     .then(main => main.bootstrap(appConfig), console.error.bind(console)); 
</script> 

Main.ts:

import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; 
import { AppModule } from './app.module'; 
import { AppConfig } from './app-config'; 

export function bootstrap(appConfig: AppConfig) { 
    var compilerOptions = { providers: [{ provide: AppConfig, useValue: appConfig }] }; 
    platformBrowserDynamic().bootstrapModule(AppModule, compilerOptions); 
} 

誰かが最新angular2のリリースで、このようなサーバー生成された値を渡す方法を説明していただけますか?

を(rc.5)私はそれを考え出した

答えて

2

、platformBrowserDynamicがパラメータとしてプロバイダを取り、これらのすべてのサービスに介して自分の道を作るのですかなどだから、main.tsは次のようになります。

import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; 
import { AppModule } from './app.module'; 
import { AppConfig } from './config-types'; 

export function bootstrap(appConfig: AppConfig) { 
    var providers = [{ provide: AppConfig, useValue: appConfig }]; 
    platformBrowserDynamic(providers).bootstrapModule(AppModule); 
} 

うまくいけば、これは他の人にも役立つはずです。

関連する問題