Skip to content
This repository was archived by the owner on Apr 8, 2020. It is now read-only.

Commit 1287709

Browse files
Use HttpWithStateTransferModule in Angular template
1 parent 5f1450c commit 1287709

File tree

5 files changed

+14
-3
lines changed

5 files changed

+14
-3
lines changed

templates/AngularSpa/ClientApp/app/app.module.shared.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { CommonModule } from '@angular/common';
33
import { FormsModule } from '@angular/forms';
44
import { HttpModule } from '@angular/http';
55
import { RouterModule } from '@angular/router';
6+
import { HttpWithStateTransferModule } from 'aspnet-angular';
67

78
import { AppComponent } from './components/app/app.component';
89
import { NavMenuComponent } from './components/navmenu/navmenu.component';
@@ -21,6 +22,7 @@ import { CounterComponent } from './components/counter/counter.component';
2122
imports: [
2223
CommonModule,
2324
HttpModule,
25+
HttpWithStateTransferModule,
2426
FormsModule,
2527
RouterModule.forRoot([
2628
{ path: '', redirectTo: 'home', pathMatch: 'full' },

templates/AngularSpa/ClientApp/app/components/fetchdata/fetchdata.component.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { Component, Inject } from '@angular/core';
2-
import { Http } from '@angular/http';
2+
import { HttpWithStateTransfer } from 'aspnet-angular';
33

44
@Component({
55
selector: 'fetchdata',
@@ -8,7 +8,7 @@ import { Http } from '@angular/http';
88
export class FetchDataComponent {
99
public forecasts: WeatherForecast[];
1010

11-
constructor(http: Http, @Inject('BASE_URL') baseUrl: string) {
11+
constructor(http: HttpWithStateTransfer, @Inject('BASE_URL') baseUrl: string) {
1212
http.get(baseUrl + 'api/SampleData/WeatherForecasts').subscribe(result => {
1313
this.forecasts = result.json() as WeatherForecast[];
1414
}, error => console.error(error));

templates/AngularSpa/ClientApp/boot.server.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { enableProdMode, ApplicationRef, NgZone, ValueProvider } from '@angular/
66
import { platformDynamicServer, PlatformState, INITIAL_CONFIG } from '@angular/platform-server';
77
import { createServerRenderer, RenderResult } from 'aspnet-prerendering';
88
import { AppModule } from './app/app.module.server';
9+
import { HttpWithStateTransfer } from 'aspnet-angular';
910

1011
enableProdMode();
1112

@@ -20,6 +21,7 @@ export default createServerRenderer(params => {
2021
const appRef: ApplicationRef = moduleRef.injector.get(ApplicationRef);
2122
const state = moduleRef.injector.get(PlatformState);
2223
const zone = moduleRef.injector.get(NgZone);
24+
const http: HttpWithStateTransfer = moduleRef.injector.get(HttpWithStateTransfer);
2325

2426
return new Promise<RenderResult>((resolve, reject) => {
2527
zone.onError.subscribe((errorInfo: any) => reject(errorInfo));
@@ -28,7 +30,8 @@ export default createServerRenderer(params => {
2830
// completing the request in case there's an error to report
2931
setImmediate(() => {
3032
resolve({
31-
html: state.renderToString()
33+
html: state.renderToString(),
34+
globals: { ...http.stateForTransfer() }
3235
});
3336
moduleRef.destroy();
3437
});

templates/AngularSpa/npm-shrinkwrap.json

Lines changed: 5 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

templates/AngularSpa/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
"@ngtools/webpack": "1.5.0",
2121
"@types/webpack-env": "1.13.0",
2222
"angular2-template-loader": "0.6.2",
23+
"aspnet-angular": "^0.1.1",
2324
"aspnet-prerendering": "^3.0.1",
2425
"aspnet-webpack": "^2.0.1",
2526
"awesome-typescript-loader": "3.2.1",

0 commit comments

Comments
 (0)