| 1 | Architecture and anatomy | 07:21 |
| 2 | Component and module architecture | 06:04 |
| 3 | One-way immutable data flow | 05:41 |
| 4 | Stateful, stateless and routed Components | 03:46 |
| 5 | $scope.$watch / $watchCollection | 07:00 |
| 6 | $attrs.$observe / $updateClass | 03:57 |
| 7 | Directive Controllers | 03:24 |
| 8 | Inherited and isolate scopes | 05:14 |
| 9 | Using bindToController | 02:22 |
| 10 | Compile and link functions | 07:05 |
| 11 | Single-slot automated transclusion | 03:14 |
| 12 | Transclusion with $transclude | 04:55 |
| 13 | Multi-slot automated transclusion | 03:48 |
| 14 | Inheriting Controllers with require | 07:11 |
| 15 | DOM API integration | 06:12 |
| 16 | Using third-party plugins/widgets | 05:22 |
| 17 | Using .component() | 04:39 |
| 18 | Using require, $onInit, $postLink, $onDestroy | 05:56 |
| 19 | One-way databinding and $onChanges | 08:00 |
| 20 | Publish and subscribe with $emit/$broadcast/$on | 05:12 |
| 21 | $scope, $rootScope events and unbinding | 07:52 |
| 22 | ngModel require, $setViewValue, $render | 05:50 |
| 23 | $parsers and $formatters | 05:50 |
| 24 | $validators pipeline | 05:10 |
| 25 | Validation state-based CSS | 04:41 |
| 26 | Migrating to ngMessages | 06:18 |
| 27 | Multiple errors and templates | 05:32 |
| 28 | Dynamic error messaging | 03:39 |
| 29 | Single value filters | 04:41 |
| 30 | Dataset filters | 09:24 |
| 31 | Component-based routing setup | 06:53 |
| 32 | Nested states, views, custom URLs | 04:55 |
| 33 | Routing resolves and bindings | 06:04 |
| 34 | Multiple named views | 05:25 |
| 35 | ui-router Directives | 06:07 |
| 36 | $transitions, $transitionsProvider, uiCanExit, hooks | 09:44 |
| 37 | Dynamic routes and query params, HTML5 mode | 10:07 |
| 38 | Constants and values | 04:18 |
| 39 | $resource, $query/$get/$update/$delete/$save | 13:46 |
| 40 | $q Promises defer/resolve/reject/all/race | 09:35 |
| 41 | HTTP interceptors | 05:27 |
| 42 | Setup: Karma and Jasmine | 03:57 |
| 43 | Testing: Standalone Controllers | 07:39 |
| 44 | Testing: Directives Controllers | 06:11 |
| 45 | Testing: Component Controllers | 08:04 |
| 46 | Testing: Filters | 07:06 |
| 47 | Testing: Services | 05:33 |
| 48 | Testing: Routing | 07:36 |
| 49 | Project setup, walkthrough, install | 11:02 |
| 50 | Setting up Firebase console | 06:11 |
| 51 | Login/register routes, authorisation | 33:35 |
| 52 | Core app module, auth redirects | 24:12 |
| 53 | Create new contact, stateful/stateless components | 22:50 |
| 54 | Editing existing contact, stateful/stateless components | 14:54 |
| 55 | Stateless tag components | 08:08 |
| 56 | Rendering contacts from router resolves | 05:37 |
| 57 | Contact stateless components | 05:53 |
| 58 | Dynamic ui-router param filtering | 09:21 |
| 59 | Dynamic content Directive for inputs | 04:43 |
| 60 | Running tests and Firebase deploy | 03:42 |