Skip to content
This repository was archived by the owner on Dec 4, 2017. It is now read-only.

Commit 12886a1

Browse files
committed
docs(cb-di): more Ward tweaks
1 parent 16d2e8c commit 12886a1

17 files changed

+488
-145
lines changed

gulpfile.js

+1
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ var _exampleBoilerplateFiles = [
7474
'package.json',
7575
'styles.css',
7676
'tsconfig.json',
77+
'tslint.json',
7778
'typings.json'
7879
];
7980

public/docs/_examples/.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,6 @@ package.json
66
karma.conf.js
77
karma-test-shim.js
88
tsconfig.json
9+
tslint.json
910
npm-debug*.
1011
**/protractor.config.js

public/docs/_examples/cb-dependency-injection/e2e-spec.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ describe('Dependency Injection Cookbook', function () {
5555
});
5656

5757
it('should render Hero-of-the-Month runner-ups', function () {
58-
var runnersUp = element(by.id('names')).getText();
58+
var runnersUp = element(by.id('rups')).getText();
5959
expect(runnersUp).toContain('RubberMan, Mr. Nice');
6060
});
6161

public/docs/_examples/cb-dependency-injection/ts/app/app.component.html

+2
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,14 @@ <h3>Hero Bios</h3>
1010
<hero-bios></hero-bios>
1111
</div>
1212

13+
<!-- #docregion highlight -->
1314
<div id="highlight" class="di-component" myHighlight>
1415
<h3>Hero Bios and Contacts</h3>
1516
<div myHighlight="yellow">
1617
<hero-bios-and-contacts></hero-bios-and-contacts>
1718
</div>
1819
</div>
20+
<!-- #enddocregion highlight -->
1921

2022
<div class="di-component">
2123
<hero-of-the-month></hero-of-the-month>

public/docs/_examples/cb-dependency-injection/ts/app/app.component.ts

+12-9
Original file line numberDiff line numberDiff line change
@@ -9,28 +9,29 @@ import { HeroesBaseComponent,
99
import { HighlightDirective } from './highlight.directive';
1010
import { ParentPasserComponent } from './parent-passer.component';
1111

12+
const DIRECTIVES = [
13+
HeroBiosComponent, HeroBiosAndContactsComponent,
14+
HeroesBaseComponent, SortedHeroesComponent,
15+
HeroOfTheMonthComponent,
16+
HighlightDirective,
17+
ParentPasserComponent
18+
];
19+
1220
// #docregion import-services
1321
import { LoggerService } from './logger.service';
1422
import { UserContextService } from './user-context.service';
1523
import { UserService } from './user.service';
16-
// #enddocregion import-services
1724

1825
@Component({
1926
selector: 'my-app',
2027
templateUrl:'app/app.component.html',
21-
directives: [
22-
HeroBiosComponent, HeroBiosAndContactsComponent,
23-
HeroesBaseComponent, SortedHeroesComponent,
24-
HeroOfTheMonthComponent,
25-
HighlightDirective,
26-
ParentPasserComponent
27-
],
28+
directives: DIRECTIVES,
2829
// #docregion providers
2930
providers: [LoggerService, UserContextService, UserService]
3031
// #enddocregion providers
3132
})
32-
3333
export class AppComponent {
34+
// #enddocregion import-services
3435

3536
private userId:number = 1;
3637

@@ -40,4 +41,6 @@ export class AppComponent {
4041
logger.logInfo('AppComponent initialized');
4142
}
4243
// #enddocregion ctor
44+
// #docregion import-services
4345
}
46+
// #enddocregion import-services
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,37 @@
1+
/* tslint:disable:one-line:check-open-brace*/
12
// #docregion
23
import { Injectable } from 'angular2/core';
34
import { LoggerService } from './logger.service';
45

56
// #docregion minimal-logger
6-
// class used as restricting interface (hides other public members)
7+
// class used as a restricting interface (hides other public members)
78
export abstract class MinimalLogger {
8-
logInfo: (msg:string) => void;
9+
logInfo: (msg: string) => void;
910
logs: string[];
1011
}
1112
// #enddocregion minimal-logger
1213

1314
/*
15+
// Transpiles to:
1416
// #docregion minimal-logger-transpiled
15-
// Transpiles to:
16-
var MinimalLogger;
17-
MinimalLogger = (function () {
17+
var MinimalLogger = (function () {
1818
function MinimalLogger() {}
1919
return MinimalLogger;
2020
}());
21-
exports_1("MinimalLogger", MinimalLogger);
21+
exports("MinimalLogger", MinimalLogger);
2222
// #enddocregion minimal-logger-transpiled
2323
*/
2424

2525
// #docregion date-logger-service
2626
@Injectable()
27-
export class DateLoggerService extends LoggerService implements MinimalLogger {
28-
logInfo(msg:any) { super.logInfo(stamp(msg)); }
29-
logDebug(msg:any) { super.logInfo(stamp(msg)); }
30-
logError(msg:any) { super.logError(stamp(msg)); }
27+
// #docregion date-logger-service-signature
28+
export class DateLoggerService extends LoggerService implements MinimalLogger
29+
// #enddocregion date-logger-service-signature
30+
{
31+
logInfo(msg: any) { super.logInfo(stamp(msg)); }
32+
logDebug(msg: any) { super.logInfo(stamp(msg)); }
33+
logError(msg: any) { super.logError(stamp(msg)); }
3134
}
3235

33-
function stamp(msg:any){ return msg + ' at ' + new Date(); }
36+
function stamp(msg: any) { return msg + ' at ' + new Date(); }
3437
// #enddocregion date-logger-service

public/docs/_examples/cb-dependency-injection/ts/app/hero-bios.component.ts

+2
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,9 @@ export class HeroBiosComponent{
4040
<hero-bio [heroId]="3"> <hero-contact></hero-contact> </hero-bio>`,
4141
// #enddocregion template
4242
directives:[HeroBioComponent, HeroContactComponent],
43+
// #docregion class-provider
4344
providers: [HeroService]
45+
// #enddocregion class-provider
4446
})
4547
export class HeroBiosAndContactsComponent{
4648
constructor(logger: LoggerService) {
Original file line numberDiff line numberDiff line change
@@ -1,58 +1,73 @@
1+
/* tslint:disable:one-line:check-open-brace*/
2+
// #docplaster
13
// #docregion opaque-token
24
import {OpaqueToken} from 'angular2/core';
35

46
export const TITLE = new OpaqueToken('title');
57
// #enddocregion opaque-token
68

7-
// #docregion
9+
// #docregion hero-of-the-month
810
import { Component, Inject, provide } from 'angular2/core';
911

1012
import { DateLoggerService,
1113
MinimalLogger } from './date-logger.service';
1214
import { Hero } from './hero';
1315
import { HeroService } from './hero.service';
1416
import { LoggerService } from './logger.service';
15-
import { RunnersUp } from './runners-up';
16-
import { runnersUpFactory } from './runners-up-provider.service';
17+
import { RUNNERS_UP,
18+
runnersUpFactory } from './runners-up';
1719

18-
@Component({
19-
selector:'hero-of-the-month',
20-
template:`
20+
// #enddocregion hero-of-the-month
21+
// #docregion some-hero
22+
const someHero = new Hero(42, 'Magma', 'Had a great month!', '555-555-5555');
23+
// #enddocregion some-hero
24+
25+
const template = `
2126
<h3>{{title}}</h3>
22-
<div>Winner: <strong>{{_heroOfTheMonth.name}}</strong></div>
23-
<div>Reason for award: <strong>{{_heroOfTheMonth.description}}</strong></div>
24-
<div>Other candidates: <strong id="names">{{_runnersUp.names}}</strong></div>
27+
<div>Winner: <strong>{{heroOfTheMonth.name}}</strong></div>
28+
<div>Reason for award: <strong>{{heroOfTheMonth.description}}</strong></div>
29+
<div>Runners-up: <strong id="rups">{{runnersUp}}</strong></div>
2530
2631
<p>Logs:</p>
2732
<div id="logs">
2833
<div *ngFor="#log of logs">{{log}}</div>
2934
</div>
30-
`,
35+
`;
3136

32-
// #docregion providers
33-
providers:[
34-
HeroService,
35-
provide(Hero, {useValue: new Hero(42, 'Magma','Had a great month!','555-555-5555')}),
37+
// #docregion hero-of-the-month
38+
@Component({
39+
selector: 'hero-of-the-month',
40+
template: template,
41+
providers: [
42+
provide(Hero, {useValue: someHero}),
43+
// #docregion use-class
44+
provide(HeroService, {useClass: HeroService}),
3645
provide(LoggerService, {useClass: DateLoggerService}),
46+
// #enddocregion use-class
47+
// #docregion use-existing
3748
provide(MinimalLogger, {useExisting: LoggerService}),
38-
provide(RunnersUp, {useFactory: runnersUpFactory, deps:[Hero, HeroService]}),
39-
provide(TITLE, {useValue: 'Hero of the Month'})
49+
// #enddocregion use-existing
50+
// #docregion provide-token
51+
// #docregion use-factory
52+
provide(RUNNERS_UP, {useFactory: runnersUpFactory(2), deps: [Hero, HeroService]}),
53+
// #enddocregion use-factory
54+
provide(TITLE, {useValue: 'Hero of the Month'})
55+
// #docregion provide-token
4056
]
41-
// #enddocregion providers
4257
})
43-
// #docregion class
4458
export class HeroOfTheMonthComponent {
45-
logs:string[] = [];
59+
logs: string[] = [];
4660

61+
// #docregion ctor-signature
4762
constructor(
4863
logger: MinimalLogger,
49-
private _heroOfTheMonth: Hero,
50-
private _runnersUp: RunnersUp,
51-
@Inject(TITLE) public title: string) {
52-
64+
public heroOfTheMonth: Hero,
65+
@Inject(RUNNERS_UP) public runnersUp: string,
66+
@Inject(TITLE) public title: string)
67+
// #enddocregion ctor-signature
68+
{
5369
this.logs = logger.logs;
5470
logger.logInfo('starting up');
5571
}
5672
}
57-
// #enddocregion class
58-
// #enddocregion
73+
// #enddocregion hero-of-the-month

public/docs/_examples/cb-dependency-injection/ts/app/highlight.directive.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// #docplaster
22
// #docregion
3-
import {Directive, ElementRef, Input, Renderer} from 'angular2/core';
3+
import {Directive, ElementRef, Input} from 'angular2/core';
44

55
@Directive({
66
selector: '[myHighlight]',
@@ -13,7 +13,7 @@ export class HighlightDirective {
1313

1414
@Input('myHighlight') highlightColor: string;
1515

16-
private _el:HTMLElement;
16+
private _el: HTMLElement;
1717

1818
constructor(el: ElementRef) {
1919
this._el = el.nativeElement;
@@ -22,7 +22,7 @@ export class HighlightDirective {
2222
onMouseEnter() { this._highlight(this.highlightColor || 'cyan'); }
2323
onMouseLeave() { this._highlight(null); }
2424

25-
private _highlight(color:string) {
25+
private _highlight(color: string) {
2626
this._el.style.backgroundColor = color;
2727
}
2828
}

public/docs/_examples/cb-dependency-injection/ts/app/logger.service.ts

+5-5
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@ import {Injectable} from 'angular2/core';
33

44
@Injectable()
55
export class LoggerService {
6-
logs:string[] = [];
6+
logs: string[] = [];
77

8-
logInfo(msg:any) { this.log(`INFO: ${msg}`); }
9-
logDebug(msg:any) { this.log(`DEBUG: ${msg}`); }
10-
logError(msg:any) { this.log(`ERROR: ${msg}`, true); }
8+
logInfo(msg: any) { this.log(`INFO: ${msg}`); }
9+
logDebug(msg: any) { this.log(`DEBUG: ${msg}`); }
10+
logError(msg: any) { this.log(`ERROR: ${msg}`, true); }
1111

12-
private log(msg:any, isErr = false) {
12+
private log(msg: any, isErr = false) {
1313
this.logs.push(msg);
1414
isErr ? console.error(msg) : console.log(msg);
1515
}

0 commit comments

Comments
 (0)