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

Commit 0f5294e

Browse files
committed
docs(template-syntax): sample/devmode fix + text updates
closes #692
1 parent 3e18dd1 commit 0f5294e

File tree

4 files changed

+277
-102
lines changed

4 files changed

+277
-102
lines changed

public/docs/_examples/template-syntax/ts/app/app.component.html

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -255,7 +255,10 @@ <h3>
255255
<div>
256256
<!-- #docregion event-binding-3 -->
257257
<!-- `myClick` is an event on the custom `MyClickDirective` -->
258+
259+
<!-- #docregion my-click -->
258260
<div myClick (myClick)="clickity=$event">click with myClick</div>
261+
<!-- #enddocregion my-click -->
259262
<!-- #enddocregion event-binding-3 -->
260263
{{clickity}}
261264
</div>
@@ -382,8 +385,8 @@ <h3>Use setStyles2() - camelCase style property names</h3>
382385
This div is italic, normal weight, and x-large
383386
</div>
384387
<!-- #enddocregion NgStyle-3 -->
385-
<div [ngStyle]="setStyles2()" #styleDiv>
386-
After setStyles2(), the styles are "{{getStyles(styleDiv)}}"
388+
<div [ngStyle]="setStyles2()" #styleDiv2>
389+
After setStyles2(), the styles are "{{getStyles(styleDiv2)}}"
387390
</div>
388391

389392
<!-- not used in chapter -->
@@ -445,15 +448,15 @@ <h3>Use setStyles2() - camelCase style property names</h3>
445448
<div class="toe">
446449
<div *ngIf="!toeChoice">Pick a toe</div>
447450
<div *ngIf="toeChoice">You picked
448-
<!-- #docregion NgSwitch -->
451+
<!-- #docregion NgSwitch -->
449452
<span [ngSwitch]="toeChoice">
450453
<template [ngSwitchWhen]="'Eenie'">Eenie</template>
451454
<template [ngSwitchWhen]="'Meanie'">Meanie</template>
452455
<template [ngSwitchWhen]="'Miney'">Miney</template>
453456
<template [ngSwitchWhen]="'Moe'">Moe</template>
454457
<template ngSwitchDefault>Other</template>
455458
</span>
456-
<!-- #enddocregion NgSwitch -->
459+
<!-- #enddocregion NgSwitch -->
457460
</div>
458461

459462
</div>
@@ -477,8 +480,8 @@ <h3>Use setStyles2() - camelCase style property names</h3>
477480
<br>
478481

479482
<div class="box">
480-
<!-- Ex: 1 - Hercules Son of Zeus -->
481483
<!-- #docregion NgFor-3 -->
484+
<!-- Ex: 1 - Hercules Son of Zeus -->
482485
<div *ngFor="#hero of heroes, #i=index">{{i + 1}} - {{hero.fullName}}</div>
483486
<!-- #enddocregion NgFor-3 -->
484487
</div>

public/docs/_examples/template-syntax/ts/app/app.component.ts

Lines changed: 37 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
//#docplaster
2+
13
import {Component} from 'angular2/core';
24
import {NgForm} from 'angular2/common';
35

@@ -37,6 +39,11 @@ export class AppComponent {
3739

3840
currentHero = Hero.MockHeroes[0];
3941

42+
// DevMode memoization fields
43+
private _priorClasses:{};
44+
private _priorStyles:{};
45+
private _priorStyles2:{};
46+
4047
getStyles(el:Element){
4148
let styles = window.getComputedStyle(el);
4249
let showStyles = {};
@@ -100,36 +107,61 @@ export class AppComponent {
100107

101108
// #docregion setClasses
102109
setClasses() {
103-
return {
110+
let classes = {
104111
saveable: this.canSave, // true
105112
modified: !this.isUnchanged, // false
106113
special: this.isSpecial, // true
107114
}
115+
// #enddocregion setClasses
116+
// compensate for DevMode (sigh)
117+
if (JSON.stringify(classes) === JSON.stringify(this._priorClasses)){
118+
return this._priorClasses;
119+
}
120+
this._priorClasses = classes;
121+
// #docregion setClasses
122+
return classes;
108123
}
109124
// #enddocregion setClasses
110125

126+
111127
// #docregion setStyles
112128
setStyles() {
113-
return {
129+
let styles = {
114130
// CSS property names
115131
'font-style': this.canSave ? 'italic' : 'normal', // italic
116132
'font-weight': !this.isUnchanged ? 'bold' : 'normal', // normal
117133
'font-size': this.isSpecial ? 'x-large': 'smaller', // larger
118134
}
135+
// #enddocregion setStyles
136+
// compensate for DevMode (sigh)
137+
if (JSON.stringify(styles) === JSON.stringify(this._priorStyles)){
138+
return this._priorStyles;
139+
}
140+
this._priorStyles = styles;
141+
// #docregion setStyles
142+
return styles;
119143
}
120144
// #enddocregion setStyles
121-
145+
122146
// #docregion setStyles2
123147
setStyles2() {
124-
return {
148+
let styles = {
125149
// camelCase style properties work too
126150
fontStyle: this.canSave ? 'italic' : 'normal', // italic
127151
fontWeight: !this.isUnchanged ? 'bold' : 'normal', // normal
128152
fontSize: this.isSpecial ? 'x-large': 'smaller', // larger
129153
}
154+
// #enddocregion setStyles2
155+
// compensate for DevMode (sigh)
156+
if (JSON.stringify(styles) === JSON.stringify(this._priorStyles2)){
157+
return this._priorStyles2;
158+
}
159+
this._priorStyles2 = styles;
160+
// #docregion setStyles2
161+
return styles;
130162
}
131163
// #enddocregion setStyles2
132-
164+
133165
toeChoice = '';
134166
toeChooser(picker:HTMLFieldSetElement){
135167
let choices = picker.children;

public/docs/_examples/template-syntax/ts/app/my-click.directive.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// #docplaster
22
import {Directive, Output, ElementRef, EventEmitter} from 'angular2/core';
33

4-
@Directive({selector:'[mClick]'})
4+
@Directive({selector:'[myClick]'})
55
export class MyClickDirective {
66
// #docregion my-click-output-1
77
@Output('myClick') clicks = new EventEmitter<string>();

0 commit comments

Comments
 (0)