Skip to content

Commit dd39e56

Browse files
pbatchupbatchu
authored andcommitted
got to till the TODO app demo (begin)
1 parent 4671777 commit dd39e56

File tree

3 files changed

+88
-87
lines changed

3 files changed

+88
-87
lines changed

AngularJS/img/angularjs.jpeg

93.7 KB
Loading

AngularJS/img/toolset.png

119 KB
Loading

AngularJS/index.html

Lines changed: 88 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939

4040
<section>
4141
<!--<h1>Angular.js</h1>-->
42-
<img src="http://hop.ie/talks/angular-intro/images/angularjs.jpeg"/>
42+
<img src="img/angularjs.jpeg"/>
4343
<h3>Superheroic JavaScript MVW Framework</h3>
4444
<p>
4545
Prashanth Batchu
@@ -65,47 +65,47 @@ <h3>Superheroic JavaScript MVW Framework</h3>
6565
</section>
6666

6767
<section>
68-
69-
<h2>Agenda</h2>
68+
69+
<h2>Agenda</h2>
7070
<ul>
71-
<li>Why use Angular?</li>
72-
<li>Angular Core Features<ul>
73-
<li>Two-way Data Binding, Directives</li>
74-
</ul></li>
71+
<li>Why use Angular?</li>
72+
<li>Angular Core Features<ul>
73+
<li>Two-way Data Binding, Directives</li>
74+
</ul></li>
7575

76-
<li>Examples
76+
<li>Examples
7777

78-
</li>
78+
</li>
7979

80-
<li>Best Practices</li>
81-
<li>Resources</li>
82-
<li>Q&A</li>
80+
<li>Best Practices</li>
81+
<li>Resources</li>
82+
<li>Q&A</li>
8383

84-
</ul>
84+
</ul>
8585

86-
<aside class="notes">
87-
<ul>
88-
<li>First we'll look at the reasons for why a framework such as Angular JS has come into existence. We'll look at the problems that it is trying to address and how it solves them.
89-
</li>
90-
<li>
91-
We will explore various concepts of Angular including Two-way data binding, Scope, Directives, Filters, MVC etc.
92-
Then we'll dive into some examples and take a closer look at how Angular works.
86+
<aside class="notes">
87+
<ul>
88+
<li>First we'll look at the reasons for why a framework such as Angular JS has come into existence. We'll look at the problems that it is trying to address and how it solves them.
89+
</li>
90+
<li>
91+
We will explore various concepts of Angular including Two-way data binding, Scope, Directives, Filters, MVC etc.
92+
Then we'll dive into some examples and take a closer look at how Angular works.
9393

94-
<li>We'll also explore various options available for debugging, packaging, dependency management and deployment.
94+
<li>We'll also explore various options available for debugging, packaging, dependency management and deployment.
9595

9696

97-
<li>I'll also present some best practices (if time permits).
98-
</li>
99-
<li>
100-
Then I'll provide some links to some useful content about Angular,There are some amazing resources on the web provided by the official angular js development team</li>
97+
<li>I'll also present some best practices (if time permits).
98+
</li>
99+
<li>
100+
Then I'll provide some links to some useful content about Angular,There are some amazing resources on the web provided by the official angular js development team</li>
101101

102-
</ul>
102+
</ul>
103+
104+
</aside>
103105

104-
</aside>
105-
106106
</section>
107107
<section>
108-
108+
109109
<section>
110110
<h3>Motivation for creating Angular</h3>
111111
<table>
@@ -282,23 +282,23 @@ <h4>Angular supports Two way Data Binding</h4>
282282
<li>Treat the model as the single-source-of-truth in your application. </li>
283283
<li>The view is a projection of the model at all times. When the model changes, the view reflects the change, and vice versa.</li>
284284
</ul>
285-
<aside class="notes">
286-
Those of you who have worked with Flex or WPF may be already familiar with Data Binding.It is very simple. You have a model (data) specific to your application and you bind this model to a template and let the templating engine generate the views for you.
287-
285+
<aside class="notes">
286+
Those of you who have worked with Flex or WPF may be already familiar with Data Binding.It is very simple. You have a model (data) specific to your application and you bind this model to a template and let the templating engine generate the views for you.
287+
288288
</aside>
289289
</section>
290290
<section>
291291
<img src="img/dataBinding1.png" />
292-
293-
<aside class="notes">
294-
<ul>
295-
<li> Here I have a very simple model with a profile of Tony Stark and it's bound to two templates and generated two views. Now the interesting part about this is that this is not a one time link between the view and the model. It is a live system where if I modify the model, the templating engine will observe this change and will update the view automatically. I don't need to go update the view everytime the model changes. And it also works the other way around. So if you have two way data binding and you bind the model to the form like I have in the second view. If the user starts interacting with the form and starts changing the form content, the changes will be propagated automatically to the model. And because I have a second view bound to the same model, these changes will go back to the second view where it will be reflected automatically.</li>
296-
<li>It can get more advanced if you start dealing with Arrays and Collections </li>
297-
</ul>
298-
292+
293+
<aside class="notes">
294+
<ul>
295+
<li> Here I have a very simple model with a profile of Tony Stark and it's bound to two templates and generated two views. Now the interesting part about this is that this is not a one time link between the view and the model. It is a live system where if I modify the model, the templating engine will observe this change and will update the view automatically. I don't need to go update the view everytime the model changes. And it also works the other way around. So if you have two way data binding and you bind the model to the form like I have in the second view. If the user starts interacting with the form and starts changing the form content, the changes will be propagated automatically to the model. And because I have a second view bound to the same model, these changes will go back to the second view where it will be reflected automatically.</li>
296+
<li>It can get more advanced if you start dealing with Arrays and Collections </li>
297+
</ul>
298+
299299
</aside>
300-
301-
300+
301+
302302
</section>
303303
<section>
304304

@@ -332,12 +332,12 @@ <h3>Directives</h3>
332332
<section>
333333

334334
<img src="img/reuse2.png" />
335-
335+
336336
<aside class="notes">
337337
And its not just tabs. Think about all these components that you could build using this feature. You can also share it within/outside of your project. These components can be stateless or stateful.
338338
</aside>
339339
</section>
340-
340+
341341
<section>
342342

343343
<img src="img/reuse3.png" />
@@ -352,68 +352,69 @@ <h3>Directives</h3>
352352
<section>
353353
<h3>Examples</h3>
354354
<iframe width="100%" height="300" src="http://jsfiddle.net/uhsarp/d7Y76/embedded/" allowfullscreen="allowfullscreen" frameborder="0"></iframe>
355-
355+
356356
<img src="img/concepts-startup.png" />
357357
<img src="img/concepts-runtime.png" />
358358
<aside class="notes">
359-
<ul>
360-
<li>The browser loads the HTML and parses it into a DOM</li>
361-
<li>The browser loads <code>angular.js</code> script</li>
362-
<li>Angular waits for <code>DOMContentLoaded</code> event</li>
363-
<li>Angular looks for <a href="api/ng.directive:ngApp"><code>ng-app</code></a>
364-
<a href="guide/directive">directive</a>, which designates the application boundary</li>
365-
<li>The <a href="guide/module">Module</a> specified in <a href="api/ng.directive:ngApp"><code>ng-app</code></a> (if any) is used to configure
366-
the <a href="api/AUTO.$injector"><code>$injector</code></a></li>
367-
<li>The <a href="api/AUTO.$injector"><code>$injector</code></a> is used to create the <a href="api/ng.$compile"><code>$compile</code></a> service as well as <a href="api/ng.$rootScope"><code>$rootScope</code></a></li>
368-
<li>The <a href="api/ng.$compile"><code>$compile</code></a> service is used to compile the DOM and link
369-
it with <a href="api/ng.$rootScope"><code>$rootScope</code></a></li>
370-
<li>The <a href="api/ng.directive:ngInit"><code>ng-init</code></a> <a href="guide/directive">directive</a> assigns <code>World</code> to the <code>name</code> property on the <a href="guide/scope">scope</a></li>
371-
<li>The <code>{{name}}</code> <a href="api/ng.$interpolate"><code>interpolates</code></a> the expression to
372-
<code>Hello World!</code></li>
373-
</aside>
359+
<ul>
360+
<li>The browser loads the HTML and parses it into a DOM</li>
361+
<li>The browser loads <code>angular.js</code> script</li>
362+
<li>Angular waits for <code>DOMContentLoaded</code> event</li>
363+
<li>Angular looks for <a href="api/ng.directive:ngApp"><code>ng-app</code></a>
364+
<a href="guide/directive">directive</a>, which designates the application boundary</li>
365+
<li>The <a href="guide/module">Module</a> specified in <a href="api/ng.directive:ngApp"><code>ng-app</code></a> (if any) is used to configure
366+
the <a href="api/AUTO.$injector"><code>$injector</code></a></li>
367+
<li>The <a href="api/AUTO.$injector"><code>$injector</code></a> is used to create the <a href="api/ng.$compile"><code>$compile</code></a> service as well as <a href="api/ng.$rootScope"><code>$rootScope</code></a></li>
368+
<li>The <a href="api/ng.$compile"><code>$compile</code></a> service is used to compile the DOM and link
369+
it with <a href="api/ng.$rootScope"><code>$rootScope</code></a></li>
370+
<li>The <a href="api/ng.directive:ngInit"><code>ng-init</code></a> <a href="guide/directive">directive</a> assigns <code>World</code> to the <code>name</code> property on the <a href="guide/scope">scope</a></li>
371+
<li>The <code>{{name}}</code> <a href="api/ng.$interpolate"><code>interpolates</code></a> the expression to
372+
<code>Hello World!</code></li>
373+
</aside>
374374
</section>
375375
<section>
376-
<iframe width="100%" height="300" src="http://jsfiddle.net/uhsarp/QSFh7/2/embedded/" allowfullscreen="allowfullscreen" frameborder="0"></iframe>
377-
<aside class="notes">
376+
<h4>Type in your Name</h4>
377+
<iframe width="100%" height="300" src="http://jsfiddle.net/uhsarp/QSFh7/2/embedded/" allowfullscreen="allowfullscreen" frameborder="0"></iframe>
378+
<aside class="notes">
378379
<ol>
379-
<li>During the compilation phase:
380-
<ol><li>the <a href="api/ng.directive:ngModel"><code>ng-model</code></a> and <a href="api/ng.directive:input"><code>input</code></a> <a href="guide/directive">directive</a> set up a <code>keydown</code> listener on the <code>&lt;input&gt;</code> control.</li>
381-
<li>the <a href="api/ng.$interpolate"><code>{{name}}</code></a> interpolation
382-
sets up a <a href="api/ng.$rootScope.Scope#$watch"><code>$watch</code></a> to be notified of
383-
<code>name</code> changes.</li></ol></li>
384-
<li>During the runtime phase:
385-
<ol><li>Pressing an '<code>X</code>' key causes the browser to emit a <code>keydown</code> event on the input control.</li>
386-
<li>The <a href="api/ng.directive:input"><code>input</code></a> directive
387-
captures the change to the input's value and calls <a href="api/ng.$rootScope.Scope#$apply"><code>$apply</code></a><code>("name = 'X';")</code> to update the
388-
application model inside the Angular execution context.</li>
389-
<li>Angular applies the <code>name = 'X';</code> to the model.</li>
390-
<li>The <a href="api/ng.$rootScope.Scope#$digest"><code>$digest</code></a> loop begins</li>
391-
<li>The <a href="api/ng.$rootScope.Scope#$watch"><code>$watch</code></a> list detects a change
392-
on the <code>name</code> property and notifies the <a href="api/ng.$interpolate"><code>{{name}}</code></a> interpolation, which in turn updates the DOM.</li>
393-
<li>Angular exits the execution context, which in turn exits the <code>keydown</code> event and with it
394-
the JavaScript execution context.</li>
395-
<li>The browser re-renders the view with update text.</li></ol></li>
396-
</ol>
380+
<li>During the compilation phase:
381+
<ol><li>the <a href="api/ng.directive:ngModel"><code>ng-model</code></a> and <a href="api/ng.directive:input"><code>input</code></a> <a href="guide/directive">directive</a> set up a <code>keydown</code> listener on the <code>&lt;input&gt;</code> control.</li>
382+
<li>the <a href="api/ng.$interpolate"><code>{{name}}</code></a> interpolation
383+
sets up a <a href="api/ng.$rootScope.Scope#$watch"><code>$watch</code></a> to be notified of
384+
<code>name</code> changes.</li></ol></li>
385+
<li>During the runtime phase:
386+
<ol><li>Pressing an '<code>X</code>' key causes the browser to emit a <code>keydown</code> event on the input control.</li>
387+
<li>The <a href="api/ng.directive:input"><code>input</code></a> directive
388+
captures the change to the input's value and calls <a href="api/ng.$rootScope.Scope#$apply"><code>$apply</code></a><code>("name = 'X';")</code> to update the
389+
application model inside the Angular execution context.</li>
390+
<li>Angular applies the <code>name = 'X';</code> to the model.</li>
391+
<li>The <a href="api/ng.$rootScope.Scope#$digest"><code>$digest</code></a> loop begins</li>
392+
<li>The <a href="api/ng.$rootScope.Scope#$watch"><code>$watch</code></a> list detects a change
393+
on the <code>name</code> property and notifies the <a href="api/ng.$interpolate"><code>{{name}}</code></a> interpolation, which in turn updates the DOM.</li>
394+
<li>Angular exits the execution context, which in turn exits the <code>keydown</code> event and with it
395+
the JavaScript execution context.</li>
396+
<li>The browser re-renders the view with update text.</li></ol></li>
397+
</ol>
397398
</aside>
398399
</section>
399-
400-
<section>
400+
401+
<section>
401402
TODO App
402403
<iframe width="100%" height="300" src="http://jsfiddle.net/uhsarp/SyaFT/embedded/" allowfullscreen="allowfullscreen" frameborder="0"></iframe>
403404
</section>
404405
<section>
405406
<img src="img/scope.png" />
406-
407-
407+
408+
408409
</section>
409410
<section>
410411
Directives
411-
<iframe width="100%" height="700" src="http://jsfiddle.net/uhsarp/qZjrW/embedded/" allowfullscreen="allowfullscreen" frameborder="0"></iframe>
412+
<iframe width="100%" height="700" src="http://jsfiddle.net/uhsarp/qZjrW/embedded/" allowfullscreen="allowfullscreen" frameborder="0"></iframe>
412413
</section>
413-
414+
414415
<section>
415416
Wiring a Backend
416-
<iframe width="100%" height="300" src="http://jsfiddle.net/uhsarp/upv84/embedded/" allowfullscreen="allowfullscreen" frameborder="0"></iframe>
417+
<iframe width="100%" height="800" src="http://jsfiddle.net/uhsarp/upv84/embedded/" allowfullscreen="allowfullscreen" frameborder="0"></iframe>
417418
</section>
418419
</section>
419420

@@ -422,7 +423,7 @@ <h3>Examples</h3>
422423
<h2>Best Practices</h2>
423424
</section>
424425
<section>
425-
<img src='https://raw.github.com/yeoman/yeoman.io/gh-pages/media/toolset.png'/>
426+
<img src='img/toolset.png'/>
426427
<ul>
427428
<li><p><a href="https://github.com/yeoman/yo">Yo</a> scaffolds out a new application, writing your Grunt configuration and pulling in relevant Grunt tasks that you might need for your build. </p></li>
428429
<li><p><a href="http://gruntjs.com">Grunt</a> is used to build, preview and test your project, thanks to help from tasks curated by the Yeoman team and grunt-contrib. </p></li>

0 commit comments

Comments
 (0)