<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://www.wiki.leomartin.net/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://www.wiki.leomartin.net/feed.php">
        <title>DokuWiki angularjs_2_essential_training</title>
        <description></description>
        <link>https://www.wiki.leomartin.net/</link>
        <image rdf:resource="https://www.wiki.leomartin.net/lib/tpl/dokuwiki/images/favicon.ico" />
       <dc:date>2026-04-07T20:59:37+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://www.wiki.leomartin.net/doku.php?id=angularjs_2_essential_training:basics_of_typescript&amp;rev=1464964555&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wiki.leomartin.net/doku.php?id=angularjs_2_essential_training:component_metadata&amp;rev=1464969008&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wiki.leomartin.net/doku.php?id=angularjs_2_essential_training:components_bootstrap_and_the_dom&amp;rev=1464965481&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wiki.leomartin.net/doku.php?id=angularjs_2_essential_training:course_overview&amp;rev=1464964834&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wiki.leomartin.net/doku.php?id=angularjs_2_essential_training:data_binding&amp;rev=1464966618&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wiki.leomartin.net/doku.php?id=angularjs_2_essential_training:data_persistence&amp;rev=1464967502&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wiki.leomartin.net/doku.php?id=angularjs_2_essential_training:dependency_injection&amp;rev=1464966878&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wiki.leomartin.net/doku.php?id=angularjs_2_essential_training:directives_and_pipes&amp;rev=1464966053&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wiki.leomartin.net/doku.php?id=angularjs_2_essential_training:index&amp;rev=1464962460&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wiki.leomartin.net/doku.php?id=angularjs_2_essential_training:routing&amp;rev=1464968056&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wiki.leomartin.net/doku.php?id=angularjs_2_essential_training:services_and_other_business_logic&amp;rev=1464967253&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wiki.leomartin.net/doku.php?id=angularjs_2_essential_training:styling_a_component&amp;rev=1465838020&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wiki.leomartin.net/doku.php?id=angularjs_2_essential_training:the_component_selector&amp;rev=1465836001&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wiki.leomartin.net/doku.php?id=angularjs_2_essential_training:the_component_template&amp;rev=1465836192&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.wiki.leomartin.net/doku.php?id=angularjs_2_essential_training:using_other_components_in_a_component&amp;rev=1465838559&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://www.wiki.leomartin.net/lib/tpl/dokuwiki/images/favicon.ico">
        <title>DokuWiki</title>
        <link>https://www.wiki.leomartin.net/</link>
        <url>https://www.wiki.leomartin.net/lib/tpl/dokuwiki/images/favicon.ico</url>
    </image>
    <item rdf:about="https://www.wiki.leomartin.net/doku.php?id=angularjs_2_essential_training:basics_of_typescript&amp;rev=1464964555&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-06-03T16:35:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>angularjs_2_essential_training:basics_of_typescript</title>
        <link>https://www.wiki.leomartin.net/doku.php?id=angularjs_2_essential_training:basics_of_typescript&amp;rev=1464964555&amp;do=diff</link>
        <description>&lt;- Using the exercise filesCourse overview -&gt;
Typescript : superset de JavaScript -&gt; compilé vers JavaScript.

Écrire du Javascript en lieu et place de typeScript est tout à fait possible et valide.

Avantages :

	*  ES2015 class
	*  Modules
	*  Strong typing
		*  Variables
		*  Signatures</description>
    </item>
    <item rdf:about="https://www.wiki.leomartin.net/doku.php?id=angularjs_2_essential_training:component_metadata&amp;rev=1464969008&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-06-03T17:50:08+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>angularjs_2_essential_training:component_metadata</title>
        <link>https://www.wiki.leomartin.net/doku.php?id=angularjs_2_essential_training:component_metadata&amp;rev=1464969008&amp;do=diff</link>
        <description>&lt;- RoutingThe component selector -&gt;
Decorator

-&gt; Expression that evaluate to a function allowing annotation classes at design time


syntaxe : &lt;decorator indicator&gt;&lt;name&gt;(&lt;arguments&gt;)
exemple : @Component()


...

-&gt; app.component.ts


import {Component} from 'angular2/core'; // import du component

@Component({
  selector: 'app',
  template: '&lt;h1&gt;My App&lt;/h1&gt;'
})
export class AppComponent {} // on exporte pour pouvoir importer ailleurs</description>
    </item>
    <item rdf:about="https://www.wiki.leomartin.net/doku.php?id=angularjs_2_essential_training:components_bootstrap_and_the_dom&amp;rev=1464965481&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-06-03T16:51:21+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>angularjs_2_essential_training:components_bootstrap_and_the_dom</title>
        <link>https://www.wiki.leomartin.net/doku.php?id=angularjs_2_essential_training:components_bootstrap_and_the_dom&amp;rev=1464965481&amp;do=diff</link>
        <description>&lt;- Course overviewDirectives and pipes -&gt;
Angular est basé sur l'assemblage de composants (components), avec comme point de départ le 'initial parent component'.

De manière similaire au DOM et à son élément racine, cet élément parent est la racine de la structure.

Dans angular, un component est utilisé pour rendre une portion de</description>
    </item>
    <item rdf:about="https://www.wiki.leomartin.net/doku.php?id=angularjs_2_essential_training:course_overview&amp;rev=1464964834&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-06-03T16:40:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>angularjs_2_essential_training:course_overview</title>
        <link>https://www.wiki.leomartin.net/doku.php?id=angularjs_2_essential_training:course_overview&amp;rev=1464964834&amp;do=diff</link>
        <description>&lt;- Basics of TypeScriptComponents, Bootstrap, and the DOM -&gt;
	*  Directives
	*  Pipes
	*  Services
	*  HTTP
	*  Routing
	*  Components</description>
    </item>
    <item rdf:about="https://www.wiki.leomartin.net/doku.php?id=angularjs_2_essential_training:data_binding&amp;rev=1464966618&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-06-03T17:10:18+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>angularjs_2_essential_training:data_binding</title>
        <link>https://www.wiki.leomartin.net/doku.php?id=angularjs_2_essential_training:data_binding&amp;rev=1464966618&amp;do=diff</link>
        <description>&lt;- Directives and pipesDependency injection -&gt;
	*  templates expressions and statements
	*  value binding
	*  event binding</description>
    </item>
    <item rdf:about="https://www.wiki.leomartin.net/doku.php?id=angularjs_2_essential_training:data_persistence&amp;rev=1464967502&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-06-03T17:25:02+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>angularjs_2_essential_training:data_persistence</title>
        <link>https://www.wiki.leomartin.net/doku.php?id=angularjs_2_essential_training:data_persistence&amp;rev=1464967502&amp;do=diff</link>
        <description>&lt;- Services and other business logicRouting -&gt;
	*  in-memory data-store
	*  local storage

	*  XHR
	*  JSONP
	*  -&gt; Angular HTTP</description>
    </item>
    <item rdf:about="https://www.wiki.leomartin.net/doku.php?id=angularjs_2_essential_training:dependency_injection&amp;rev=1464966878&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-06-03T17:14:38+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>angularjs_2_essential_training:dependency_injection</title>
        <link>https://www.wiki.leomartin.net/doku.php?id=angularjs_2_essential_training:dependency_injection&amp;rev=1464966878&amp;do=diff</link>
        <description>&lt;- Data bindingServices and other business logic -&gt;
DI = Dependencies Injection

Plus facile à réutiliser et à unit-tester.

Lieu le plus commun d'usage : contructeurs.

Constructor(formBuilder: FormBuilder) {}

aussi utilisable au bootstrap (component racine) :

bootstrap( App, [DataService, FormulaService]);</description>
    </item>
    <item rdf:about="https://www.wiki.leomartin.net/doku.php?id=angularjs_2_essential_training:directives_and_pipes&amp;rev=1464966053&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-06-03T17:00:53+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>angularjs_2_essential_training:directives_and_pipes</title>
        <link>https://www.wiki.leomartin.net/doku.php?id=angularjs_2_essential_training:directives_and_pipes&amp;rev=1464966053&amp;do=diff</link>
        <description>&lt;- Components, Bootstrap, and the DOMData binding -&gt;
Directives

Pour Angular, un component est une directive avec un template.

Les directives fournissent des fonctionnalités et peuvent transformer le DOM.

Il existe deux types de Directives :

	*  Structural : modifient le layout via le DOM
	*</description>
    </item>
    <item rdf:about="https://www.wiki.leomartin.net/doku.php?id=angularjs_2_essential_training:index&amp;rev=1464962460&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-06-03T16:01:00+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>angularjs_2_essential_training:index</title>
        <link>https://www.wiki.leomartin.net/doku.php?id=angularjs_2_essential_training:index&amp;rev=1464962460&amp;do=diff</link>
        <description>- Introduction

	*  Welcome
	*  Why use AngularJS 2
	*  What you should know before watching this course
	*  Using the exercise files
	*  Basics of TypeScript
	*  Course overview

- Architecture Overview

	*  Components, Bootstrap, and the DOM
	*  Directives and pipes
	*  Data binding
	*  Dependency injection
	*  Services and other business logic
	*  Data persistence
	*  Routing

- Components

	*  Component metadata
	*  The component selector
	*  The component template
	*  Styling a component
	*…</description>
    </item>
    <item rdf:about="https://www.wiki.leomartin.net/doku.php?id=angularjs_2_essential_training:routing&amp;rev=1464968056&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-06-03T17:34:16+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>angularjs_2_essential_training:routing</title>
        <link>https://www.wiki.leomartin.net/doku.php?id=angularjs_2_essential_training:routing&amp;rev=1464968056&amp;do=diff</link>
        <description>&lt;- Data persistenceComponent metadata -&gt;
Angular Router Module

Route configuration -&gt; Routing Links -&gt; Routing outlets -&gt; Routing events

handles url</description>
    </item>
    <item rdf:about="https://www.wiki.leomartin.net/doku.php?id=angularjs_2_essential_training:services_and_other_business_logic&amp;rev=1464967253&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-06-03T17:20:53+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>angularjs_2_essential_training:services_and_other_business_logic</title>
        <link>https://www.wiki.leomartin.net/doku.php?id=angularjs_2_essential_training:services_and_other_business_logic&amp;rev=1464967253&amp;do=diff</link>
        <description>&lt;- Dependency injectionData persistence -&gt;
Component &lt;--&gt; view

Services (inside component) = application logic. Non liés à angular.</description>
    </item>
    <item rdf:about="https://www.wiki.leomartin.net/doku.php?id=angularjs_2_essential_training:styling_a_component&amp;rev=1465838020&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-06-13T19:13:40+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>angularjs_2_essential_training:styling_a_component</title>
        <link>https://www.wiki.leomartin.net/doku.php?id=angularjs_2_essential_training:styling_a_component&amp;rev=1465838020&amp;do=diff</link>
        <description>&lt;- The component templateUsing other components in a component -&gt;

// inline template
@Component ({
  selector: 'media-tracker-app',
  template: '&lt;h1&gt;My app&lt;/h1&gt;',
})
// ou
  template: `
              &lt;h1&gt;My App&lt;/h1&gt;
              &lt;p&gt;now width multiline HTML&lt;/p&gt;
            `,


Ou mettre dans du html séparé (la propriété devient templateUrl) :</description>
    </item>
    <item rdf:about="https://www.wiki.leomartin.net/doku.php?id=angularjs_2_essential_training:the_component_selector&amp;rev=1465836001&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-06-13T18:40:01+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>angularjs_2_essential_training:the_component_selector</title>
        <link>https://www.wiki.leomartin.net/doku.php?id=angularjs_2_essential_training:the_component_selector&amp;rev=1465836001&amp;do=diff</link>
        <description>&lt;- Component metadataThe component template -&gt;
-&gt; app.component.ts


(...)
@Component({
  selector: 'my-app',
  (...)
})
(...)


Cible la première instance trouvée seulement, ici :

index.html


(...)
&lt;my-app&gt;Loading...&lt;/my-app&gt;
(...)


...</description>
    </item>
    <item rdf:about="https://www.wiki.leomartin.net/doku.php?id=angularjs_2_essential_training:the_component_template&amp;rev=1465836192&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-06-13T18:43:12+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>angularjs_2_essential_training:the_component_template</title>
        <link>https://www.wiki.leomartin.net/doku.php?id=angularjs_2_essential_training:the_component_template&amp;rev=1465836192&amp;do=diff</link>
        <description>&lt;- The component selectorStyling a component -&gt;
Concernant le component racine, angular va chercher le premier match dans le dom, pas plusieurs. Donc si on indique le sélecteur app, s'assurer qu'il n'y a bien qu'un seul &lt;app&gt; dans la page !

-&gt; utiliser des dash dans le sélecteur genre media-app</description>
    </item>
    <item rdf:about="https://www.wiki.leomartin.net/doku.php?id=angularjs_2_essential_training:using_other_components_in_a_component&amp;rev=1465838559&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-06-13T19:22:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>angularjs_2_essential_training:using_other_components_in_a_component</title>
        <link>https://www.wiki.leomartin.net/doku.php?id=angularjs_2_essential_training:using_other_components_in_a_component&amp;rev=1465838559&amp;do=diff</link>
        <description>&lt;- Styling a componentInterpolation and the expression context -&gt;

(…)
import {MediaItemComponent} from './media-item.component';

@Component({
  (…)
  directives: ['MediaItemComponent'], // si angular trouve dans le component DOM un objet qui match le sélecteur de MediaItemComponent, ??? (Compoditize ???) le component
  (…)
})</description>
    </item>
</rdf:RDF>
