Sébastien Lucas / Dev wiki
  • Blog Wiki
  • Story book
  • Developers comics
  • Angular
    • Angular CLI + Angular.json
    • ngTemplateOutlet
    • Angular Schematic
    • Interceptor
    • Micro frontend + Mono repo
    • Build a library module
    • Error handling
    • Virtual and infinite scroll
    • Angular i18n
    • Debug Angular
    • Angular LifeCycle Hook
    • Nested forms in Angular
    • Angular Recipes
    • Master component in Angular
    • Perfomance optimization
    • Service Workers + PWA
    • Mobile
    • Electron app / Desktop app
    • Unit test & Angular
      • Unit test recipes (Jasmine / Karma / Angular)
      • Testing services with httpMock
    • Communication between components
    • Angular snippet library
    • Release and version management
    • Angular tutorial selection
    • UI components libraries
    • Angular libraries
    • Angular Tutorials
    • NGRX
      • Angular NGRX / Tips and code examples
      • Angular new Redux (alternative to ngrx)
      • NGRX unit test
      • Angular ngrx / Basics
    • Angular 2/Angular 1 differences
  • Graphql
  • Three.js
  • Ag grid
  • Open source BIM and 3D
  • Javascript
    • Null vs undefined
    • Html API
    • Await API
    • Debug memory leaks
    • Offline and PWA
    • Javascript tutorials
    • Javascript recipes
    • Bluebird missing docs
    • Alternative to lodash with ES6
    • ES6 syntax the best parts
    • Vanilla JS
  • RXJS
    • Docs
    • Recipes
    • Mock API and sandbox
    • Observables rxjs recipes
    • Combination operators
  • NODE.js
    • Environment variables
    • Fix CORS
    • Pagination requests in API
    • API tests
    • Node.js security
    • Learn node.js
    • Best libraries for node.js
    • Mongoose recipe
    • Debug node.js
  • Gatsby / React
    • Hooks
    • React concepts
    • Gatsby internationalisation
  • Ghost blog
  • Services for developers
    • SaaS images services
    • Airtable API examples
  • MISC
    • JIRA debugging
    • Wordpress plugins
    • Interview Sébastien Lucas
    • English expression
    • True recipes
    • Science podcast
  • AI
    • Machine learning open source
    • Tensor flow
    • Machine learning
    • Code examples
    • Courses and tutorials
    • Datasets
    • The Future of AI
    • Learn algo and data structures
  • Typescript
    • Generic types
    • Typescript recipes
    • Advanced types
      • Conditional types
      • Type guards
    • d.ts files
  • Docker
    • Starting with docker
    • Dockerise simple node app
    • Docker by aymen el amri
  • Mongodb
    • Pattern and data modeling
  • Devops
    • Heroku
    • Scaleway
    • Github template
    • Gitlab CI
    • http2
    • nginx
    • zsh
    • CI Continuous integration
    • DNS
    • Devops resources
    • Gcloud useful commands
    • Authenticate Gcloud
    • Documentation generators
    • Firebase database
  • Developers ressources
    • Online platform coding
      • Online courses
      • Coding games
      • Coding test platforms
      • Links to check
    • Good developers blogs
    • Nice open source project / github
  • Tooling
    • The chrome urls
    • Linux Mac tips
    • Webstorm configuration
    • Develop in Windows
    • Mac debug hardware
    • Mac Setup for a developer
    • Chrome extension
    • Develop toolbox
  • HTML / CSS
    • Tailwind
    • Css grid
    • ☘️Nice styles & generators
    • Favicon
    • Flexbox grid
    • Flexbox layout
    • PUG templates tips
    • Html and css references
    • Css snippets
    • SASS-CSS libraries
    • New things in scss
    • SASS best practices
    • Style lint
  • Tests
    • Cypress
      • Learn cypress and more tests
      • Cypress commands
      • Cypress plugins
      • Page object && app actions
      • Flaky tests
    • Mobile test
    • BDD + Cucumber
    • Puppeteer
    • Type of tests + Ressources
    • Jasmine test
    • Mock, fake, stub in unit tests
    • E2e tests with protactor
    • Mocha
  • REVIT & AEC tools
  • Git
    • Git commits
    • Git tips
    • Git hooks
    • Set up a mono repo
  • Design Pattern
    • Functional Programming
  • Job board / Remote jobs
  • SVG
  • JSON
  • Github
    • Forking a github repo
  • NPM
    • Private NPM packages
    • Publish to NPM with np
  • Yarn
    • Yarn evolution / 2, 3...
    • Yarn Linking
Powered by GitBook
On this page
  • Web components
  • General
  • Data binding
  • Forms
  • Reactive forms or model driven fields
  • Forms fields
  • Events / Change detection
  • Components
  • viewChildren
  • Components @input
  • Component ngInit vs constructor
  • Dynamic components
  • Communication between components
  • Ng-template, ng-container, ng-template-outlet
  • DOM
  • Directives
  • Observables / RxJS
  • ngFor, ngIf, ...
  • Redux inspired rxjs store
  • Modules
  • components styling css
  • Decorator / Annotation syntax [Typescript]
  • Dependency injection
  • Pipes
  • Router
  • ES 6
  • Typescript
  • System.js / JSPM
  • Angular 2 & firebase
  • AOT Ahead of Time Compilation
  • Integration of external library / Jquery
  • Angular CLI
  • New release
  • Stripe integration
  • Commits, git....
  • Tests
  • Webpack build
  • Zones & ngZone
  • Progressive web app
  • Responsive
  • Theming
  • Error handler

Was this helpful?

  1. Angular

Angular tutorial selection

PreviousRelease and version managementNextUI components libraries

Last updated 6 years ago

Was this helpful?

Here is a curated list of some good tutorials we used to learn the version 2 of angular.

Web components

  • How to integrate web components in angular

General

  • Official angular 2 tutorial

  • Light weight documentation with both ES6 and Angular 2 made by Ionic team

  • 132+ Video tutorial on specific pratical cases

  • nicely focused tutorials on a medium hoste dev site

  • Very well done and free tutorial on angular The good aspect is that the tutorials have both a video a a detailed instruction. And that all the learnings are well size to be progressive.

Data binding

  • Custom text area, input... data binding

Forms

  • Edit forms value programatically : setValue and patchValue

Reactive forms or model driven fields

  • Using Angular2 model driven forms

  • Introduction to Angular 2 Forms - Template Driven vs Model Driven or Reactive Forms

  • Reactive forms

Forms fields

  • Example of different types of fields

Events / Change detection

  • Event and @output decorator

  • Change detection in Angular 2

  • How to replicate $scope.$emit with global events ? More technics that official ways

Components

  • Children view

  • Dump / Smart component architecture :

    A way to organize component to differentiate presentational component highly reusable and intelligent component that actually handle the logic and specific stuff

viewChildren

Components @input

Component ngInit vs constructor

  • Difference between constructor and ngOnInit

Dynamic components

Communication between components

  • Different ways for communication between components :

    • With input with a setter

    • With input via ngChanges detection

    • With @viewchild that allow to manipulate child methods

    • With a service and observable subject

Ng-template, ng-container, ng-template-outlet

DOM

  • How to use the angular 2 renderer service to manipulate the DOM in a way all platforms (server, browser, mobile.. can accept)

  • How to use window like with the good old $window angular 1

In this tuto, you learn how to do a wrapper of window to inject in with DI only if usable (in the browser)

Directives

  • Structural (ngIf...or custom) or attributes (ngClass... or custom) directives

  • ng-show / ng-hide in angular 2 : the angular 2 solution is to bind to hidden prop but there is some issue so read this article to decide which practice to use

Observables / RxJS

Angular 2 adopted this new concept of observable which basically is a more advanced form of promise. RxJs is the implementation of Observable used by angular which is being developed by Microsoft.

  • This post list 3 common problems with can have with observable.

  • Pitfall 1 : not subscribing to an observable is similar to having a function but not exucuting it

An observable itself is just a definition of a way to handle a stream of values. We can think of it as something close to a function. Creating an observable is somewhat similar to declaring a function, the function itself is just a declaration. Calling the function is something entirely different, as defining a function does not execute its code.

We need to call the function in order for something to happen, and that is also the case with an Observable: we need to subscribe to it in order for it to work!

ngFor, ngIf, ...

  • Revision of what ngFor can do

    • how to get the index

    • how to track by another value that default (by object Identity)

    • using odd, even, last, first for dynamic class naming

    ngFor by default tracks list items using object identity. This means that if you build a list of new objects from scratch with the exact same values as the previous list and pass this newly built list to ngFor, Angular will not be able to tell that a given list item is already present or not.

Redux inspired rxjs store

Modules

Organize your code in a modular way. Import a module instead of importing a dozen of files (javascript modules). Despite of the use of ES6 modules in angular, angular modules @ngModules are still useful to bundle a feature or a shared utility together.

  • The angular university tutorial on ngModule

  • the official style guide module section

components styling css

  • Clear and recent article on module and their differen types

Decorator / Annotation syntax [Typescript]

Dependency injection

Pipes

Router

ES 6

  • Exploring JS / Full online book on javascripting with extensive doc on ES6

Typescript

  • Detailed explanation about how the modules resolution works for the typescript compiler. How typescript find a module when we write something like :

    // Relative import
    import { Component, Input }   from '@angular/core';
    // Non relative  import
    import { OptionService }      from '../../../services/api/option.service';

System.js / JSPM

  • A installation guide using JSPM / Typescript and System.js

Angular 2 & firebase

AOT Ahead of Time Compilation

Integration of external library / Jquery

Angular CLI

  • The ultimate guide of angular CLI

New release

  • What is new in angular 4

Stripe integration

Commits, git....

  • Automatical changelogs

    )

Tests

Webpack build

Zones & ngZone

Progressive web app

Responsive

Theming

Allow to use angular material theming abstraction (you do not need to use other aspect of material if you do not want). Though it complicate a bit the scss handling, it is a great enhancement for let's say use case where you want to customize your app for your clients, or allow the user to change it's profile visual aspect. Angular material have an opinated but intelligent way of handling colors, that is portable is different environment : mobile, desktop....

Error handler

Guide to forms in angular 2

Angular forms beyond the basics Some more advanced form topics like automatically adding class for bootstrap or async validation...

How to define a inner child component property on-change to allow pass observable as input.

Component inheritance introduced in 2.3

Building a data store with observable

The Doc of observables transform operator

Good introduction to the reactive architecture

The ng module FAQ is a good place to better understand the ngModules API fine tuning

Difference between decorator and annotation

How to inject window in a service to keep it compatible with angular dependency injection philosophy

Simple tutorial to do a custom pipe available in its components then make it available application wide

In depth practical article on the new angular 2 router

How to use guards to prevent access to some pages

Named router oulet (same as UI router)

An interceptor for angular 4 Mains changes : interceptor, json as a default reponse

Events that trigger at route change start, end...

Detailed post that explained the principle of firebase, why it is a good solution for BaaS application and allow to develop faster. Then it describe the integration in Angular2 with the angular fire library

The official docs ?

The doc in the project

Demystifying AOT : Nice slides that present AOT as an easy thing ...

a bit old but clear

[

Conventional commits a standard for commits

using-zones-in-angular-for-better-performance.html)

Example of For exemple it intercept and d things when request have a status code of let's say 403

Global error handler

Error handler by extending a

https://www.sitepen.com/blog/2017/09/14/using-web-components-with-angular
https://angular.io/docs/ts/latest/tutorial/
Learn angular 2
https://egghead.io/technologies/angular2
https://netbasal.com/tagged/angular2
https://codecraft.tv/courses/angular
http://lishman.io/angular-2-input-binding
http://blog.ng-book.com/the-ultimate-guide-to-forms-in-angular-2/
http://restlet.com/blog/2016/02/17/implementing-angular2-forms-beyond-basics-part-2/
https://toddmotto.com/angular-2-form-controls-patch-value-set-value
https://scotch.io/tutorials/using-angular-2s-model-driven-forms-with-formgroup-and-formcontrol
http://blog.angular-university.io/introduction-to-angular-2-forms-template-driven-vs-model-driven
https://toddmotto.com/angular-2-forms-reactive
https://scotch.io/tutorials/how-to-deal-with-different-form-controls-in-angular-2
https://toddmotto.com/component-events-event-emitter-output-angular-2
http://blog.thoughtram.io/angular/2016/02/22/angular-2-change-detection-explained.html
http://stackoverflow.com/questions/34700438/global-events-in-angular-2
http://blog.mgechev.com/2016/01/23/angular2-viewchildren-contentchildren-difference-viewproviders
https://teropa.info/blog/2016/02/22/dumb-components-and-visual-feedback-in-angular-apps.html
View children, view child and query list
http://almerosteyn.com/2016/03/immutable-component-input-from-observable
http://stackoverflow.com/questions/35763730/difference-between-constructor-and-ngoninit
Dynamically creating component in angular 2
Another dynamic component creation tutorial
https://scotch.io/tutorials/component-inheritance-in-angular-2
https://angular.io/docs/ts/latest/cookbook/component-communication.html
Access child DOM and methods @viewChild and template variable
ng-template
https://netbasal.com/angular-2-explore-the-renderer-service-e43ef673b26c#.mah8emsrl
https://juristr.com/blog/2016/09/ng2-get-window-ref/
https://angular-2-training-book.rangle.io/handout/advanced-angular/directives/
http://www.talkingdotnet.com/dont-use-hidden-attribute-angularjs-2
http://blog.angular-university.io/angular-2-rxjs-common-pitfalls/
http://blog.angular-university.io/how-to-build-angular2-apps-using-rxjs-observable-data-services-pitfalls-to-avoid/
http://reactivex.io/documentation/operators.html#transforming
http://blog.angular-university.io/angular-2-ngfor/
ng-template and odd, even, last variable in ngFor
https://blog.angular-university.io/angular-ngrx-store-and-effects-crash-course
https://scotch.io/bar-talk/getting-to-know-angular-2s-module-ngmodule
https://angular.io/docs/ts/latest/cookbook/ngmodule-faq.html#!#q-declarable
https://medium.com/@cyrilletuzi/understanding-angular-modules-ngmodule-and-their-scopes-81e4ed6f7407
http://blog.angular-university.io/angular2-ngmodule/
https://angular.io/styleguide#!#application-structure-and-angular-modules
https://angular.io/docs/ts/latest/guide/component-styles.html#!#special-selectors
http://blog.ng-book.com/css-isolation-in-angular-2-components/
https://medium.com/@michelestieven/organizing-angular-applications-f0510761d65a
http://blog.thoughtram.io/angular/2015/05/03/the-difference-between-annotations-and-decorators.html
https://juristr.com/blog/2016/09/ng2-get-window-ref
https://scotch.io/tutorials/create-a-globally-available-custom-pipe-in-angular-2
Angular date pipe tutorial
https://scotch.io/tutorials/routing-angular-2-single-page-apps-with-the-component-router
http://www.sparkbit.pl/angular-2-route-guards-real-life-example/
http://onehungrymind.com/named-router-outlets-in-angular-2/
https://medium.com/@amcdnl/the-new-http-client-in-angular-4-3-754bd3ff83a8
Other article about new router and interceptor
a last article that talk about multiple interceptors
Router events
http://exploringjs.com/es6/ch_destructuring.html#_object-destructuring
https://www.typescriptlang.org/docs/handbook/module-resolution.html
http://www.mario-brendel.com/angular2-setup/2016/01/28/Angular2_Jspm_Setup_Part1/
http://blog.angular-university.io/angular-2-firebase
https://angularfire2.com/api/
https://github.com/angular/angularfire2/tree/master/docs
http://slides.com/wassimchegham/demystifying-ahead-of-time-compilation-in-angular-2-aot-jit#/30
Wrap any jQuery plugin with Angular 2 component — case study.
USe jquery inside your angular 2-4 component
https://www.sitepoint.com/ultimate-angular-cli-reference/
http://blog.ninja-squad.com/2017/03/24/what-is-new-angular-4
http://blog.mgechev.com/2016/07/05/using-stripe-payment-with-angular-2/
https://github.com/conventional-changelog/standard-version](https://github.com/conventional-changelog/standard-version
https://conventionalcommits.org/
automated test with angular 2
Importing css with webpack angular starter
runing something outside angular zone so that we skip angular change detection
Progressive web app
Responsive directive to display / hide and more
The more detailed article on how /deep/ ::ng-deep, :host or :host-context works
https://medium.com/@tomastrajan/the-complete-guide-to-angular-material-themes-4d165a9d24d1
an interceptor to server as an error handler with then new router - juil 2017
https://medium.com/@amcdnl/global-error-handling-with-angular2-6b992bdfb59c
https://hackernoon.com/global-http-request-error-catching-in-angular-486a319f59ab