diff --git a/public/docs/_examples/router/e2e-spec.ts b/public/docs/_examples/router/e2e-spec.ts
index bf672c3f01..a82ebd08a5 100644
--- a/public/docs/_examples/router/e2e-spec.ts
+++ b/public/docs/_examples/router/e2e-spec.ts
@@ -16,8 +16,8 @@ describe('Router', function () {
crisisHref: hrefEles.get(0),
crisisList: element.all(by.css('my-app > ng-component > ng-component li')),
- crisisDetail: element(by.css('my-app > ng-component > ng-component > div')),
- crisisDetailTitle: element(by.css('my-app > ng-component > ng-component > div > h3')),
+ crisisDetail: element(by.css('my-app > ng-component > ng-component > ng-component > div')),
+ crisisDetailTitle: element(by.css('my-app > ng-component > ng-component > ng-component > div > h3')),
heroesHref: hrefEles.get(1),
heroesList: element.all(by.css('my-app > ng-component li')),
@@ -34,7 +34,7 @@ describe('Router', function () {
expect(page.hrefs.count()).toEqual(4, 'should be 4 dashboard choices');
expect(page.crisisHref.getText()).toEqual('Crisis Center');
expect(page.heroesHref.getText()).toEqual('Heroes');
- expect(page.adminHref.getText()).toEqual('Crisis Admin');
+ expect(page.adminHref.getText()).toEqual('Admin');
expect(page.loginHref.getText()).toEqual('Login');
});
@@ -118,7 +118,6 @@ describe('Router', function () {
crisisText = text.substr(text.indexOf(' ')).trim();
return crisisEle.click();
}).then(function () {
- expect(page.crisisList.count()).toBe(0, 'should no longer see crisis center entries');
expect(page.crisisDetail.isPresent()).toBe(true, 'should be able to see crisis detail');
expect(page.crisisDetailTitle.getText()).toContain(crisisText);
let inputEle = page.crisisDetail.element(by.css('input'));
diff --git a/public/docs/_examples/router/ts/app/admin/admin-dashboard.component.1.ts b/public/docs/_examples/router/ts/app/admin/admin-dashboard.component.1.ts
new file mode 100644
index 0000000000..ffa3e3cb8f
--- /dev/null
+++ b/public/docs/_examples/router/ts/app/admin/admin-dashboard.component.1.ts
@@ -0,0 +1,9 @@
+// #docregion
+import { Component } from '@angular/core';
+
+@Component({
+ template: `
+
Dashboard
+ `
+})
+export class AdminDashboardComponent { }
diff --git a/public/docs/_examples/router/ts/app/crisis-center/crisis-admin.component.ts b/public/docs/_examples/router/ts/app/admin/admin-dashboard.component.ts
old mode 100755
new mode 100644
similarity index 86%
rename from public/docs/_examples/router/ts/app/crisis-center/crisis-admin.component.ts
rename to public/docs/_examples/router/ts/app/admin/admin-dashboard.component.ts
index 38fe14a38e..8c8e481643
--- a/public/docs/_examples/router/ts/app/crisis-center/crisis-admin.component.ts
+++ b/public/docs/_examples/router/ts/app/admin/admin-dashboard.component.ts
@@ -6,15 +6,14 @@ import 'rxjs/add/operator/map';
@Component({
template: `
- CRISIS ADMINISTRATION
- Manage your crises here
+ Dashboard
Session ID: {{ sessionId | async }}
Token: {{ token | async }}
`
})
-export class CrisisAdminComponent implements OnInit {
+export class AdminDashboardComponent implements OnInit {
sessionId: Observable;
token: Observable;
diff --git a/public/docs/_examples/router/ts/app/admin/admin.component.ts b/public/docs/_examples/router/ts/app/admin/admin.component.ts
new file mode 100755
index 0000000000..30abfa4524
--- /dev/null
+++ b/public/docs/_examples/router/ts/app/admin/admin.component.ts
@@ -0,0 +1,17 @@
+// #docregion
+import { Component } from '@angular/core';
+
+@Component({
+ template: `
+ ADMIN
+
+
+ `
+})
+export class AdminComponent {
+}
diff --git a/public/docs/_examples/router/ts/app/admin/admin.module.ts b/public/docs/_examples/router/ts/app/admin/admin.module.ts
new file mode 100644
index 0000000000..dce2ce30e2
--- /dev/null
+++ b/public/docs/_examples/router/ts/app/admin/admin.module.ts
@@ -0,0 +1,28 @@
+// #docplaster
+// #docregion
+import { NgModule } from '@angular/core';
+import { CommonModule } from '@angular/common';
+
+import { AdminComponent } from './admin.component';
+import { AdminDashboardComponent } from './admin-dashboard.component';
+import { ManageCrisesComponent } from './manage-crises.component';
+import { ManageHeroesComponent } from './manage-heroes.component';
+
+import { adminRouting } from './admin.routing';
+
+@NgModule({
+ imports: [
+ CommonModule,
+ adminRouting
+ ],
+ declarations: [
+ AdminComponent,
+ AdminDashboardComponent,
+ ManageCrisesComponent,
+ ManageHeroesComponent
+ ]
+})
+// #docregion admin-module-export
+export class AdminModule {}
+// #enddocregion admin-module-export
+// #enddocregion
diff --git a/public/docs/_examples/router/ts/app/admin/admin.routing.1.ts b/public/docs/_examples/router/ts/app/admin/admin.routing.1.ts
new file mode 100644
index 0000000000..a620f3ba51
--- /dev/null
+++ b/public/docs/_examples/router/ts/app/admin/admin.routing.1.ts
@@ -0,0 +1,31 @@
+// #docplaster
+// #docregion
+import { ModuleWithProviders } from '@angular/core';
+import { Routes, RouterModule } from '@angular/router';
+
+import { AdminComponent } from './admin.component';
+import { AdminDashboardComponent } from './admin-dashboard.component';
+import { ManageCrisesComponent } from './manage-crises.component';
+import { ManageHeroesComponent } from './manage-heroes.component';
+
+// #docregion admin-routes
+const adminRoutes: Routes = [
+ {
+ path: 'admin',
+ component: AdminComponent,
+ children: [
+ {
+ path: '',
+ children: [
+ { path: 'crises', component: ManageCrisesComponent },
+ { path: 'heroes', component: ManageHeroesComponent },
+ { path: '', component: AdminDashboardComponent }
+ ]
+ }
+ ]
+ }
+];
+
+export const adminRouting: ModuleWithProviders = RouterModule.forChild(adminRoutes);
+// #enddocregion admin-routes
+// #enddocregion
diff --git a/public/docs/_examples/router/ts/app/admin/admin.routing.2.ts b/public/docs/_examples/router/ts/app/admin/admin.routing.2.ts
new file mode 100644
index 0000000000..9fa3f10e4a
--- /dev/null
+++ b/public/docs/_examples/router/ts/app/admin/admin.routing.2.ts
@@ -0,0 +1,37 @@
+// #docplaster
+// #docregion
+import { ModuleWithProviders } from '@angular/core';
+import { Routes, RouterModule } from '@angular/router';
+
+import { AdminComponent } from './admin.component';
+import { AdminDashboardComponent } from './admin-dashboard.component';
+import { ManageCrisesComponent } from './manage-crises.component';
+import { ManageHeroesComponent } from './manage-heroes.component';
+
+// #docregion admin-route, can-activate-child
+import { AuthGuard } from '../auth-guard.service';
+
+const adminRoutes: Routes = [
+ {
+ path: 'admin',
+ component: AdminComponent,
+ canActivate: [AuthGuard],
+ children: [
+ {
+ path: '',
+ children: [
+ { path: 'crises', component: ManageCrisesComponent },
+ { path: 'heroes', component: ManageHeroesComponent },
+ { path: '', component: AdminDashboardComponent }
+ ],
+ // #enddocregion admin-route
+ // #docregion can-activate-child
+ canActivateChild: [AuthGuard]
+ // #docregion admin-route
+ }
+ ]
+ }
+];
+
+export const adminRouting: ModuleWithProviders = RouterModule.forChild(adminRoutes);
+// #enddocregion
diff --git a/public/docs/_examples/router/ts/app/admin/admin.routing.3.ts b/public/docs/_examples/router/ts/app/admin/admin.routing.3.ts
new file mode 100644
index 0000000000..3b4051a819
--- /dev/null
+++ b/public/docs/_examples/router/ts/app/admin/admin.routing.3.ts
@@ -0,0 +1,35 @@
+// #docplaster
+// #docregion
+import { ModuleWithProviders } from '@angular/core';
+import { Routes, RouterModule } from '@angular/router';
+
+import { AdminComponent } from './admin.component';
+import { AdminDashboardComponent } from './admin-dashboard.component';
+import { ManageCrisesComponent } from './manage-crises.component';
+import { ManageHeroesComponent } from './manage-heroes.component';
+
+// #docregion admin-route
+import { AuthGuard } from '../auth-guard.service';
+
+// #docregion can-activate-child
+const adminRoutes: Routes = [
+ {
+ path: 'admin',
+ component: AdminComponent,
+ canActivate: [AuthGuard],
+ children: [
+ {
+ path: '',
+ canActivateChild: [AuthGuard],
+ children: [
+ { path: 'crises', component: ManageCrisesComponent },
+ { path: 'heroes', component: ManageHeroesComponent },
+ { path: '', component: AdminDashboardComponent }
+ ]
+ }
+ ]
+ }
+];
+
+export const adminRouting: ModuleWithProviders = RouterModule.forChild(adminRoutes);
+// #enddocregion
diff --git a/public/docs/_examples/router/ts/app/admin/admin.routing.ts b/public/docs/_examples/router/ts/app/admin/admin.routing.ts
new file mode 100644
index 0000000000..bc5d13554c
--- /dev/null
+++ b/public/docs/_examples/router/ts/app/admin/admin.routing.ts
@@ -0,0 +1,34 @@
+// #docplaster
+// #docregion
+import { ModuleWithProviders } from '@angular/core';
+import { Routes, RouterModule } from '@angular/router';
+
+import { AdminComponent } from './admin.component';
+import { AdminDashboardComponent } from './admin-dashboard.component';
+import { ManageCrisesComponent } from './manage-crises.component';
+import { ManageHeroesComponent } from './manage-heroes.component';
+
+// #docregion admin-route
+import { AuthGuard } from '../auth-guard.service';
+
+const adminRoutes: Routes = [
+ {
+ path: '',
+ component: AdminComponent,
+ canActivate: [AuthGuard],
+ children: [
+ {
+ path: '',
+ canActivateChild: [AuthGuard],
+ children: [
+ { path: 'crises', component: ManageCrisesComponent },
+ { path: 'heroes', component: ManageHeroesComponent },
+ { path: '', component: AdminDashboardComponent }
+ ]
+ }
+ ]
+ }
+];
+
+export const adminRouting: ModuleWithProviders = RouterModule.forChild(adminRoutes);
+// #enddocregion
diff --git a/public/docs/_examples/router/ts/app/crisis-center/crisis-admin.component.1.ts b/public/docs/_examples/router/ts/app/admin/manage-crises.component.ts
similarity index 63%
rename from public/docs/_examples/router/ts/app/crisis-center/crisis-admin.component.1.ts
rename to public/docs/_examples/router/ts/app/admin/manage-crises.component.ts
index a8dacc8549..d3176563eb 100644
--- a/public/docs/_examples/router/ts/app/crisis-center/crisis-admin.component.1.ts
+++ b/public/docs/_examples/router/ts/app/admin/manage-crises.component.ts
@@ -3,8 +3,7 @@ import { Component } from '@angular/core';
@Component({
template: `
- CRISIS ADMINISTRATION
Manage your crises here
`
})
-export class CrisisAdminComponent { }
+export class ManageCrisesComponent { }
diff --git a/public/docs/_examples/router/ts/app/admin/manage-heroes.component.ts b/public/docs/_examples/router/ts/app/admin/manage-heroes.component.ts
new file mode 100644
index 0000000000..7f3a39893d
--- /dev/null
+++ b/public/docs/_examples/router/ts/app/admin/manage-heroes.component.ts
@@ -0,0 +1,9 @@
+// #docregion
+import { Component } from '@angular/core';
+
+@Component({
+ template: `
+ Manage your heroes here
+ `
+})
+export class ManageHeroesComponent { }
diff --git a/public/docs/_examples/router/ts/app/app.component.1.ts b/public/docs/_examples/router/ts/app/app.component.1.ts
index 1b0aba0044..21e9aa417d 100644
--- a/public/docs/_examples/router/ts/app/app.component.1.ts
+++ b/public/docs/_examples/router/ts/app/app.component.1.ts
@@ -6,7 +6,7 @@ import { Component } from '@angular/core';
selector: 'my-app',
// #docregion template
template: `
- Component Router
+ Angular Router