1.Introduction
- 1.1Prerequisites
- 1.1.1Node
- 1.1.2Web server
- 1.1.3The package.json file
- 1.1.4Text editors and IDEs
- 1.2Besides Javascript
- 1.3TypeScript
- 1.4Source code
2.TypeScript
- 2.1Installing TypeScript
- 2.2Using Visual Studio Code
- 2.2.1Detecting changes
- 2.2.2Debugging Visual Studio Code
- 2.2.3Debug on the browser
- 2.3Types
- 2.3.1Basic types
- 2.3.2Arrays
- 2.3.3Enum
- 2.3.4Any
- 2.3.5Void
- 2.4Classes
- 2.4.1Constructor
- 2.4.2Method and properties visibility
- 2.5Inheritance
- 2.6Accessors (get/set)
- 2.7Static Methods
- 2.8Interfaces
- 2.9Functions
- 2.9.1Default value
- 2.9.2Optional parameter
- 2.10Rest parameters
- 2.11Parameters in JSON format
- 2.12Modules
- 2.12.1Example with Systemjs
- 2.12.2Hiding js e map files on VSCode
- 2.12.3Using SystemJS
- 2.13Decorators (or annotation)
- 2.14Conclusion
3.Let’s practice
- 3.1AngularBase Project
- 3.1.1Setting up the project
- 3.1.2Setting up the TypeScript compilation
- 3.1.3Creating the first Angular 2 component
- 3.1.4Creating the ngModule
- 3.1.5Creating the bootstrap
- 3.1.6Creating an HTML file
- 3.2Creating a playlist
- 3.2.1Initial file structure
- 3.2.2Creating the application settings file
- 3.2.3Adding the bootstrap
- 3.2.4Creating the Video class
- 3.2.5Creating a simple video list
- 3.2.6Creating child components
- 3.2.7Formatting the template
- 3.2.8Passing values between components
- 3.2.9Selecting a video
- 3.2.10Events
- 3.2.11Event Bubbling
- 3.2.12Showing the video details
- 3.2.13Editing the selected video data
- 3.2.14Editing the title
- 3.2.15Creating a new item
- 3.2.16Some considerations
- 3.3Creating Components
- 3.4Hierarchical components
4.Some theory
- 4.1Overview
- 4.2Module
- 4.2.1Library Module
- 4.3ngModule
- 4.4Component
- 4.5Template
- 4.5.1Interpolation (Using {{ }})
- 4.5.2Template Expressions
- 4.6Property Bind
- 4.6.1Loops
- 4.6.2Pipes (Operator |)
- 4.7Metadata (annotation)
- 4.8Service
- 4.9Dependency injection
- 4.9.1Using the @Injectable()
5.Forms
- 5.1Creating the base project
- 5.2Using the ngControl
- 5.3Showing an error message
- 5.4Disabling the submit button of the form
- 5.5Submitting the form
- 5.6Controlling the form visibility
6.Connecting to a server
- 6.1Creating the project
- 6.2ngModule
- 6.3Using the Http class
- 6.4Using services
- 6.5Organizing the project
- 6.6User model
- 6.7User service
- 6.8Changing the AppComponent component
- 6.9Submitting data
7.Routes
- 7.1Applying AngularRoutes
- 7.2Splitting the application in smaller parts
- 7.3Creating the area where the components will be created
- 7.4Setting up the Router
- 7.5Creating route links
- 7.6Passing parameters
8.Final example - Server
- 8.1Creating the RESTful server
- 8.2The MongoDB data base
- 8.3Creating the project
- 8.4The project structure
- 8.5Setting up the MondoDB models
- 8.6Setting up the Express server
- 8.7Testing the server
- 8.8Testing the API without Angular
9.Final Example - Client application
- 9.1First files
- 9.2The base template for the application
- 9.3Implementing the routing
- 9.3.1Creating the components
- 9.3.2Setting up the @RouteConfig
- 9.3.3Setting up the menu
- 9.3.4Setting up the router-outlet
- 9.4Showing Posts
- 9.5Login
- 9.6Services
- 9.6.1LoginService
- 9.6.2UserService
- 9.6.3HeadersService
- 9.7Connecting to the server
- 9.8Posts
- 9.8.1PostService
- 9.9Refactoring the home screen
- 9.10Conclusion
10.Using Sublime Text
- 10.1Installation
- 10.2Adding support to TypeScript language
- 10.3Automating the TypeScript build
11.Publishing the App in a Cloud Server
- 11.1Creating a new account on Digital Ocean
- 11.2Creating the droplet (server)
- 11.3Setting up the SSH access
- 11.4Creating the user
- 11.5Installing git
- 11.6Installing Node
- 11.7Installing nginx
- 11.8Installing Node modules
- 11.9Recompiling the TypeScript files
- 11.10First test
- 11.11Integration between nginx and node
- 11.12Some considerations about node+nginx
- 11.13Domain
- 11.14Conclusion