ANGULAR 7
Angular 7
                                                                          Contents
Angular 7 Tutorial .......................................................................................................... 8
  TypeScript 2 ................................................................ 8
     Introduction to TypeScript ...........................................................................................................................................................8
         Advantages of TypeScript.............................................................................................................................................. 9
     Steps to Prepare First Example in TypeScript ............................................................................................................................9
         1) Installing NodeJS......................................................................................................................................................10
         2) Installing TypeScript ................................................................................................................................................14
         3) Create Application Folder .......................................................................................................................................15
         4) Installing Visual Studio Code ..................................................................................................................................17
         5) Create TypeScript Program .....................................................................................................................................22
         6) Compile the TypeScript Program ...........................................................................................................................24
         7) Execute the TypeScript Program ............................................................................................................................25
     TypeScript Basics .........................................................................................................................................................................26
         Variables ........................................................................................................................................................................26
         Data Types .....................................................................................................................................................................26
         Variables and Data Types - Example...........................................................................................................................26
     TypeScript OOP ............................................................................................................................................................................ 27
         Object.............................................................................................................................................................................27
         Objects - Example .........................................................................................................................................................28
         Class ...............................................................................................................................................................................29
         Classes - Example ..........................................................................................................................................................30
         Constructor ...................................................................................................................................................................31
         Constructor - Example..................................................................................................................................................32
         Inheritance ....................................................................................................................................................................33
         Inheritance - Example...................................................................................................................................................35
         Access Modifiers ...........................................................................................................................................................36
         Access Modifiers - Example .........................................................................................................................................37
         Interfaces .......................................................................................................................................................................39
         Interfaces - Example .....................................................................................................................................................40
         Enumerations ................................................................................................................................................................41
         Enumerations - Example ..............................................................................................................................................42
         Modules .........................................................................................................................................................................43
         Modules - Example .......................................................................................................................................................43
  Angular 7 .................................................................. 46
     Introduction to Angular 7 .......................................................................................................................................................... 46
         What is Angular? ...........................................................................................................................................................46
         Goals of Angular ...........................................................................................................................................................46
D. Harsha Vardhan (UI Expert)                                                                                                                          P a g e 2 | 454
                                                                                       Angular 7
        Versions of Angular ......................................................................................................................................................47
        Angular (vs) AngularJS .................................................................................................................................................47
        Angular (vs) jQuery .......................................................................................................................................................48
        Angular (vs) React .........................................................................................................................................................48
        Features of Angular ......................................................................................................................................................48
        Browser Compatibility of Angular 2+ .........................................................................................................................48
    Fundamentals of Angular .......................................................................................................................................................... 49
        Building Blocks of Angular ..........................................................................................................................................49
        Angular Architecture ....................................................................................................................................................49
        Types of compilation in Angular .................................................................................................................................49
    Steps to Prepare First Application in Angular 2+ .....................................................................................................................50
        1) Installing NodeJS......................................................................................................................................................50
        2) Installing TypeScript ................................................................................................................................................55
        3) Installing Visual Studio Code ..................................................................................................................................56
        4) Create Application Folder .......................................................................................................................................61
        5) Install @angular/cli package ...................................................................................................................................63
        6) Creating New Angular Application .........................................................................................................................64
        7) Open the Application in Visual Studio Code .........................................................................................................65
        8) app.component.html................................................................................................................................................67
        9) Compile the application...........................................................................................................................................68
        10) Run the application ................................................................................................................................................69
    Folder Structure of Angular Application.................................................................................................................................. 69
        1) package.json .............................................................................................................................................................70
        Packages of Angular 2+ ................................................................................................................................................74
        2) tsconfig.json..............................................................................................................................................................77
        3) tslint.json ...................................................................................................................................................................79
        4) protractor.conf.js .....................................................................................................................................................82
        5) karma.conf.js .............................................................................................................................................................83
        6) .angular-cli.json.........................................................................................................................................................84
        7) polyfills.ts ..................................................................................................................................................................86
        8) src/styles.css .............................................................................................................................................................87
        9) src/index.html ...........................................................................................................................................................88
        10) src/main.ts...............................................................................................................................................................88
        11) src/app/app.module.ts ..........................................................................................................................................89
        12) src/app/app.component.ts ....................................................................................................................................89
        13) src/app/app.component.html ...............................................................................................................................90
        14) src/app/app.component.css ..................................................................................................................................90
        15) src/app/app.component.spec.ts ...........................................................................................................................90
    Components ................................................................................................................................................................................. 91
    Modules ........................................................................................................................................................................................92
D. Harsha Vardhan (UI Expert)                                                                                                                            P a g e 3 | 454
                                                                                        Angular 7
    Data Bindings .............................................................................................................................................................................. 93
        Data Bindings - Example ..............................................................................................................................................95
        Login - Example .............................................................................................................................................................99
        Registration Form - Example .................................................................................................................................... 102
    Built-in Directives...................................................................................................................................................................... 107
        Style ............................................................................................................................................................................ 107
        Style - Example ........................................................................................................................................................... 107
        ngClass ........................................................................................................................................................................ 109
        ngClass - Example ...................................................................................................................................................... 110
        ngIf .............................................................................................................................................................................. 112
        ngIf - Example ............................................................................................................................................................ 113
        ngIf and else ............................................................................................................................................................... 115
        ngIf and else - Example ............................................................................................................................................. 116
        ngSwitch ..................................................................................................................................................................... 119
        ngSwitch - Example.................................................................................................................................................... 119
    ngFor ........................................................................................................................................................................................... 122
        ngFor ........................................................................................................................................................................... 122
        ngFor - Example ......................................................................................................................................................... 122
        ngFor with Object Array............................................................................................................................................ 125
        ngFor with Object Array - Example .......................................................................................................................... 125
        ngFor with Add, Remove........................................................................................................................................... 129
        ngFor with Add, Remove - Example ......................................................................................................................... 129
        ngFor with Searching and Sorting............................................................................................................................ 133
        ngFor with Searching and Sorting- Example........................................................................................................... 134
    Multiple Components, Multiple Modules ............................................................................................................................... 138
        Multiple Components................................................................................................................................................ 138
        Multiple Components - Example .............................................................................................................................. 139
        Multiple Modules ....................................................................................................................................................... 145
        Multiple Modules - Example ..................................................................................................................................... 145
    Children of Components ........................................................................................................................................................... 152
        Sharing Data from Parent Component to Child Component ................................................................................ 152
        Sharing Data from Parent Component to Child Component - Example .............................................................. 152
        ViewChild .................................................................................................................................................................... 156
        ViewChild - Example .................................................................................................................................................. 157
        ViewChildren .............................................................................................................................................................. 162
        ViewChildren - Example ............................................................................................................................................ 163
        ContentChild .............................................................................................................................................................. 169
        ContentChild - Example ............................................................................................................................................ 169
        ContentChildren ........................................................................................................................................................ 174
        ContentChildren - Example ...................................................................................................................................... 175
D. Harsha Vardhan (UI Expert)                                                                                                                              P a g e 4 | 454
                                                                                        Angular 7
        Reference Names....................................................................................................................................................... 181
        Reference Names - Example ..................................................................................................................................... 181
        ElementRef ................................................................................................................................................................. 187
        ElementRef - Example ............................................................................................................................................... 187
    Life Cycle Hooks ......................................................................................................................................................................... 192
        Life Cycle Hooks - Example ....................................................................................................................................... 194
    Services ....................................................................................................................................................................................... 201
        Services - Example ..................................................................................................................................................... 202
        Sharing Data using Services ...................................................................................................................................... 206
        Sharing Data using Services - Example .................................................................................................................... 206
    Custom Directives ..................................................................................................................................................................... 210
        Custom Directives - Example .................................................................................................................................... 211
    Pipes............................................................................................................................................................................................ 215
        Pipes - Example .......................................................................................................................................................... 215
        Custom Pipes.............................................................................................................................................................. 220
        Custom Pipes - Example ............................................................................................................................................ 221
    Forms and Validations ............................................................................................................................................................. 224
        Template Driven Forms ............................................................................................................................................. 224
        Template Driven Forms - Example ........................................................................................................................... 225
        Reactive Forms (or) Model Driven Forms ............................................................................................................... 230
        Reactive Forms - Example ......................................................................................................................................... 231
    Routing ....................................................................................................................................................................................... 236
        Routing - Example...................................................................................................................................................... 238
        Route Parameters ...................................................................................................................................................... 243
        Route Parameters - Example .................................................................................................................................... 244
        Child Routes ............................................................................................................................................................... 252
        Child Routes - Example ............................................................................................................................................. 253
    Guards ........................................................................................................................................................................................ 264
        CanActivate ................................................................................................................................................................ 265
        CanActivate - Example .............................................................................................................................................. 266
        CanDeactivate ............................................................................................................................................................ 282
        CanDeactivate - Example .......................................................................................................................................... 283
    Deployment ............................................................................................................................................................................... 291
        Deployment to Java .................................................................................................................................................. 291
        Deployment to .NET .................................................................................................................................................. 295
    AJAX ........................................................................................................................................................................................... 299
        Execution Flow of AJAX ............................................................................................................................................ 300
        Advantages of AJAX .................................................................................................................................................. 300
        Types of AJAX Request ............................................................................................................................................. 300
        “@angular/common/http” package ........................................................................................................................ 300
D. Harsha Vardhan (UI Expert)                                                                                                                              P a g e 5 | 454
                                                                                        Angular 7
        AJAX – Java – Simple - Example ............................................................................................................................... 302
        AJAX – Java – Get - Example .................................................................................................................................... 307
        AJAX – Java – Search - Example ............................................................................................................................... 313
        AJAX – Java – Insert - Example................................................................................................................................. 320
        AJAX – Java – Update - Example .............................................................................................................................. 326
        AJAX – Java – Delete - Example ............................................................................................................................... 332
    Http Interceptors ....................................................................................................................................................................... 338
        AJAX – Java – Http Interceptors - Get - Example ................................................................................................... 339
    RxJS .............................................................................................................................................................................................346
        Observable and Observer ......................................................................................................................................... 346
        Observable.interval ................................................................................................................................................... 348
        Observable.Interval - Example ................................................................................................................................. 349
        Observable.range ...................................................................................................................................................... 354
        Observable.range - Example .................................................................................................................................... 355
        Observable.from ........................................................................................................................................................ 360
        Observable.from - Example ...................................................................................................................................... 361
        Observable.fromEvent .............................................................................................................................................. 366
        Observable.fromEvent - Example ............................................................................................................................ 367
        Custom Observables ................................................................................................................................................. 372
        Custom Observables - Example ............................................................................................................................... 373
        Custom Observables using Services - Example ...................................................................................................... 379
        Map .............................................................................................................................................................................. 384
        Map - Example ............................................................................................................................................................ 385
        Filter ............................................................................................................................................................................ 391
        Filter - Example .......................................................................................................................................................... 392
        Take ............................................................................................................................................................................. 398
        Take - Example ........................................................................................................................................................... 399
        Skip .............................................................................................................................................................................. 404
        Skip - Example ............................................................................................................................................................ 405
        AJAX with Observable - Java - Get .......................................................................................................................... 410
        Map HTTP Request - Example .................................................................................................................................. 417
        Cancelling HTTP Request - Example ........................................................................................................................ 423
        Retrying HTTP Request - Example ........................................................................................................................... 430
        Unit Testing ................................................................................................................................................................ 437
        Unit Testing - Example .............................................................................................................................................. 438
        Animations ................................................................................................................................................................. 442
        Animations - Example ................................................................................................................................................ 444
    Angular Material Design ......................................................................................................................................................... 448
        Packages of Angular Material Design ..................................................................................................................... 448
        Themes of Angular Material Design ........................................................................................................................ 449
        MatButtonModule ..................................................................................................................................................... 450
D. Harsha Vardhan (UI Expert)                                                                                                                              P a g e 6 | 454
                                                                         Angular 7
       MatButtonModule - Example ................................................................................................................................... 451
D. Harsha Vardhan (UI Expert)                                                                                                    P a g e 7 | 454
                                                     Angular 7
                                 Angular 7 Tutorial
                                         TypeScript 2
   What is TypeScript
      • TypeScript is a programming language, which is developed based on JavaScript.
      • TypeScript is a superset of JavaScript, which adds data types, classes, interfaces and other features.
      • TypeScript = JavaScript + Data Types + Classes + Interfaces + Misc. Concepts (Arrow Functions + Multiline
        Strings + String Interpolation + Destructuring + Modules etc.)
      • TypeScript is built on the top of JavaScript. That means all the code of JavaScrpt works as-it-is in
        TypeScript, but in TypeScript, we can additionally use data types, classes, interfaces etc., concepts.
      • TypeScript is developed by Microsoft Corporation in 2012.
   Features of TypeScript
      • TypeScript is a general purpose programming language.
      • TypeScript is built in the top of JavaScript. It supports all the concepts of JavaScript.
      • TypeScript doesn't stick to client side programming / server side programming. TypeScript can be used in
        client side program development, using Angular framework. It can be used in server side program
        development, using NodeJS platform.
      • TypeScript requires to be used in modern code editors / IDE's, such as Visual Studio Code, Atom, Sublime
        Text, Web Storm, Eclipse etc.
      • Browser doesn’t support TypeScript directly. TypeScript code can’t be executed directly by the browser. So
        TypeScript code should be converted into JavaScript code, and we have to import JavaScript language file
        into the web page. Browser executes JavaScript. We use "TypeScript Compiler" (tsc) to compile / transpile
        "filename.ts (TypeScript file)" to "filename.js (JavaScript file)". We won't load TypeScript file into the
        browser; We will load & execute JavaScript file into the browser.
D. Harsha Vardhan (UI Expert)                                                               P a g e 8 | 454
                                                           Angular 7
   Versions of TypeScript
        o TypeScript 0.8        :   2012 (first version)
        o TypeScript 0.9        :   2013
        o TypeScript 1.0        :   2014
        o TypeScript 2.0        :   2016
        o TypeScript 2.6        :   2017
        o TypeScript 2.8        :   2018
  Advantages of TypeScript
   1. Static Typing and Type Safety
        o   Static Typing: Whenever we can fix a data type for the variable while declaration of variable, and we
            can’t change its data type throughout the program, then it is said to be “static typing”. Whenever we
            can’t fix a data type for the variable while declaration, and the data type will be automatically taken by
            the runtime engine automatically at the time of program execution, and we can assign any type of value
            into the variable, then it is said to be “dynamic typing”. C, C++, Java, C#.NET are examples of “static
            typing”. “JavaScript”, “Python” are examples of “dynamic typing”. TypeScript supports "Optional Static
            Typing". That means you can use both “dynamic typing” and “static typing” in TypeScript.
        o   Type Safety: If we specify data type while declaring the variable and when we assign wrong type of value
            into the variable, the compiler shows errors.
   2. Identification of Errors
        o   Typing mistakes and syntax errors are displayed as errors in the compilation time itself (rather than at
            runtime).
   3. Classes and Interfaces
        o   TypeScript supports classes and interfaces; so it providers rich programming experience much like other
            languages such as Java, C#.NET etc.
   4. Intellisense
        o   Automatic suggestions will be displayed while writing the code. For example, when we type “c” in the
            IDE, the list of matching names that start with “c” will be automatically displayed. This is available only
            in supporting code editors / IDE’s such as Visual Studio Code, WebStrom, Sublime Text etc.
   1)   Installing NodeJS
   2)   Installing TypeScript
   3)   Create Application Folder
   4)   Installing the Code Editor: Visual Studio Code
   5)   Create TypeScript Program
   6)   Compile the TypeScript Program
   7)   Execute the TypeScript Program
D. Harsha Vardhan (UI Expert)                                                                 P a g e 9 | 454
                                                   Angular 7
  1) Installing NodeJS
      • Go to “https://nodejs.org”.
      • Click on “10.7.0 Current”. Note: The version number can be very. Choose the latest version.
      • You will download a file called “node-v10.7.0-x64.msi”.
D. Harsha Vardhan (UI Expert)                                                          P a g e 10 | 454
                                                  Angular 7
      • Go to Downloads folder and double click on “node-v10.7.0-x64.msi”.
      • Click on “Next”.
      • Check the checkbox “I accept the terms in the License Agreement” and click on “Next”.
D. Harsha Vardhan (UI Expert)                                                         P a g e 11 | 454
                                Angular 7
      • Click on “Next”.
      • Click on “Next”.
D. Harsha Vardhan (UI Expert)               P a g e 12 | 454
                                           Angular 7
      • Click on “Install”.
      • Click on “Yes”.
      • Installation is in progress now.
D. Harsha Vardhan (UI Expert)                          P a g e 13 | 454
                                                    Angular 7
      • After installation is completed, click on “Finish”. Now NodeJS installation is finished.
  2) Installing TypeScript
      • Open “Command Prompt”.
      • Type npm install typescript -g in the Command prompt and press Enter.
D. Harsha Vardhan (UI Expert)                                                              P a g e 14 | 454
                                                  Angular 7
      • After pressing Enter:
      • Now TypeScript successfully installed.
  3) Create Application Folder
      • Go to “Computer” (or) “This PC”.
      • Go to “c:\”.
      • Right click on the empty area and click on “New Folder”.
D. Harsha Vardhan (UI Expert)                                      P a g e 15 | 454
                                Angular 7
D. Harsha Vardhan (UI Expert)               P a g e 16 | 454
                                                  Angular 7
      • Type the folder name as “angular” and press Enter.
      • The “c:\angular” folder is ready now.
  4) Installing Visual Studio Code
      • “Visual Studio Code” is the recommended editor for typescript and angular.
      • Visual Studio Code is easy, free, modern, customizable, open source, cross platform editor for editing so
        many languages such as Html, Css, JavaScript, TypeScript, Solidity, C#, Python etc.
D. Harsha Vardhan (UI Expert)                                                          P a g e 17 | 454
                                                  Angular 7
      • Go to https://code.visualstudio.com
      • Click on “Download for Windows”.
      • Note: The version number may be different at your practice time.
      • Go to “Downloads” folder; you can find “VSCodeSetup-x64-1.25.1.exe” file.
      • Double click on “VSCodeSetup-x64-1.25.1.exe” file.
      • Click on “Yes”.
D. Harsha Vardhan (UI Expert)                                                       P a g e 18 | 454
                                             Angular 7
      • Click on “Next”.
      • Click on “I accept the agreement”.
      • Click on “Next”.
D. Harsha Vardhan (UI Expert)                            P a g e 19 | 454
                                Angular 7
      • Click on “Next”.
      • Click on “Next”.
D. Harsha Vardhan (UI Expert)               P a g e 20 | 454
                                                Angular 7
      • Check the checkbox “Add Open with Code action to Windows Explorer file context menu”.
      • Check the checkbox “Add Open with Code action to Windows Explorer directory context menu”.
      • Click on “Next”.
      • Click on “Install”.
D. Harsha Vardhan (UI Expert)                                                      P a g e 21 | 454
                                                   Angular 7
      • Installation is going on….
      • Click on “Finish”.
  5) Create TypeScript Program
      • Open “Visual Studio Code”, by clicking on “Start” – “Visual Studio Code” – "Visual Studio Code".
      • Visual Studio Code opened.
D. Harsha Vardhan (UI Expert)                                                          P a g e 22 | 454
                                                   Angular 7
      • Go to “File” – “New File”.
      • Type the program as follows:
      • Go to “File” menu – “Save” (or) Press Ctrl+S.
D. Harsha Vardhan (UI Expert)                                  P a g e 23 | 454
                                                      Angular 7
      • Select “c:\angular” folder and enter the filename as “first.ts”.
      • Click on “Save”.
      • Now the typescript file (c:\angular\first.ts) is ready.
  6) Compile the TypeScript Program
      • Open Command Prompt and enter the following commands:
                cd c:\angular
                tsc first.ts
D. Harsha Vardhan (UI Expert)                                              P a g e 24 | 454
                                                   Angular 7
      • Now the “typescript program” has been compiled into “javascript program”; So “first.js” file has been
        generated in “c:\angular” folder.
  7) Execute the TypeScript Program
      • Enter the following commands in the same Command Prompt window:
             node first.js
   Output:
         Hello
      • Note: The "node" command (Provided by Node.js) executes the javascript file and executes its output in the
        Command Prompt itself.
D. Harsha Vardhan (UI Expert)                                                          P a g e 25 | 454
                                                      Angular 7
  Variables
      • Variable is a named memory location in RAM, to store a value at run time.
      • Syntax:             var variable : datatype = value;
      • Example:            var a : number = 100;
      • TypeScript supports “optional static typing”. That means it is optional to specify datatype for the variable
        in TypeScript.
          o Static Typing: If you specify the data type for the variable, it is not possible assign other data type of
            value into the variable; if you do so, “tsc” compiler will generate coding-time and compile-time errors;
            but the code will be compiled and executed also, even though it is having errors.
          o Dynamic Typing: If you don’t specify the data type for the variable, we can assign any type of value
            into the variable.
      • In TypeScript, we have “optional static typing”. That means it is optional to specify datatype for the variable
        in TypeScript.
  Data Types
      • “Data type” specifies what type of value that can be stored in a variable.
      • List of TypeScript Data Types:
          1.   number: All types of numbers (integer / floating-point numbers). Ex: 10, 10.3498
          2.   string: Collection of characters in double quotes or single quotes. Ex: “hello”
          3.   boolean: true or false
          4.   any: Any type of value
  Variables and Data Types - Example
   c:\angular\datatypes.ts
   Compilation and Execution
      • Open Command Prompt
         cd c:\angular
         tsc datatypes.ts
         node datatypes.js
D. Harsha Vardhan (UI Expert)                                                              P a g e 26 | 454
                                                      Angular 7
  Object
   What is Object
      • Object is the primary concept in OOP (Object Oriented Programming).
      • “Object” represents a physical item, that represents a person or a thing.
      • Object is a collection of properties (details) and methods (manipulations).
      • For example, a student is an "object".
      • We can create any no. of objects inside the program.
   What is Property
      • Properties are the deails about the object.
      • Properties are used to store a value.
      • For example, studentname="Scott" is a property in the "student object".
      • Properties are stored inside the object.
      • The value of property can be changed any no. of times.
   What is Method
      • Methods are the operations / tasks of the object, which manipulates / calculates the data and do some
        process.
      • Method is a function in the object. In other words, a function which is stored inside the object is called as
        "Method".
      • Methods are stored inside the object.
D. Harsha Vardhan (UI Expert)                                                            P a g e 27 | 454
                                                     Angular 7
   Creating Object
      • Object can be created by using "Object Literal Pattern" in TypeScript.
      • "Object literal" is a collection of properties and methods, that are enclosed within curly braces { }.
      • Syntax to create Object:         { property: value, …, method: function( ) { code here } }
   Reference Variable
      • The "reference variable" is a variable, that can store the reference of an object.
      • We can access all the properties and methods of the object, by using the "reference variable".
      • Syntax to create Object and store its reference in the "reference variable":
            var referenceVariable = { property: value, …, method: function() { code here } };
  Objects - Example
   c:\angular\objects.ts
   Compilation and Execution
      • Open Command Prompt
         cd c:\angular
         tsc objects.ts
         node objects.js
D. Harsha Vardhan (UI Expert)                                                                P a g e 28 | 454
                                                    Angular 7
  Class
   What is Class
      • “Class” represents a model of the object, which defines list of properties and methods of the object.
      • Ex: “Student” class represents structure (list of properties and methods) of every student object.
      • We can create any no. of objects based on a class, using "new" keyword.
      • All the objects of a class, shares same set of properties & methods of the class.
      • We can store the reference of the object in "reference variable"; using which you can access the object.
          class classname
          {
              properties
              methods
          }
D. Harsha Vardhan (UI Expert)                                                               P a g e 29 | 454
                                                 Angular 7
   Steps for working with classes and objects
      • Create a Class:
            class classname
            {
                property: datatype = value;
                …
                methodname( parameter1: datatype, parameter2: datatype, … ) : returntype
                {
                    code here
                }
                …
            }
     • Create an Object & Store its address in Reference Variable
            var referencevariablename = new classname( );
    • Access Properties and Methods using Reference Variable
            referencevariablename.property
            referencevariablename.method( );
  Classes - Example
   c:\angular\classes.ts
D. Harsha Vardhan (UI Expert)                                                       P a g e 30 | 454
                                                     Angular 7
   Compilation and Execution
      • Open Command Prompt
            cd c:\angular
            tsc classes.ts
            node classes.js
  Constructor
      • Constructor is a special function which is a part of the class.
      • Constructor will be called automatically when we create a new object for the class. If you create multiple
        objects for the same class, the constructor will be called each time when you create new object.
D. Harsha Vardhan (UI Expert)                                                          P a g e 31 | 454
                                                     Angular 7
      • Constructor is used to initialize properties of the class.
      • Constructor’s name should be “constructor”.
      • Constructor can receive arguments; but can’t return any value.
      • In TypeScript, we can't define multiple constructors.
   Syntax of Constructor
  Constructor - Example
   c:\angular\constructor.ts
D. Harsha Vardhan (UI Expert)                                            P a g e 32 | 454
                                                   Angular 7
   Compilation and Execution
      • Open Command Prompt
            cd c:\angular
            tsc constructor.ts
            node constructor.js
  Inheritance
      • Inheritance is a concept of extending the parent class, by creating the child class. The child class extends
        parent class. That means all the members of parent class will be inherited (derived) into the child class.
D. Harsha Vardhan (UI Expert)                                                            P a g e 33 | 454
                                                    Angular 7
      • When you create an object for the child class, it includes all the members (properties and methods) of both
        child class and parent class. When you create an object for parent class, it includes all the members
        (properties and methods) of parent class only.
      • For example, the “Student” class extends “Person class”. The “Car” class extends “Vehicle” class.
      • When parent class has a constructor, the child class’s constructor must call the parent class’s constructor
        explicitly.
      • The “extends” keyword is used to create inheritance.
      • The “super” keyword represents current parent class. It can be used to call the constructor or method of
        parent class.
   Types of Inheritance
      • Single Inheritance: One parent class with one child class.
      • Multiple Inheritance: Multiple parent classes with one child class.
      • Hierarchical Inheritance: One parent class with multiple child classes.
      • Multi-Level Inheritance: One parent class with one child class and the child class has another child class.
      • Hybrid Inheritance: One parent class with one child class.
   Syntax of Inheritance
      • Create parent class:
            class parentclass
            {
              parent class’s members
            }
      • Create child class:
            class childclass extends parentclass
            {
              child class’s members
            }
      • Create object for parent class:
            var referencevariable = new parentclass( );
            referencevariable.parentclassmember
      • Create object for child class:
             var referencevariable = new childclass( );
             referencevariable.childclassmember
             referencevariable.parentclassmember
D. Harsha Vardhan (UI Expert)                                                           P a g e 34 | 454
                                Angular 7
  Inheritance - Example
   c:\angular\inheritance.ts
D. Harsha Vardhan (UI Expert)               P a g e 35 | 454
                                                   Angular 7
   Compilation and Execution
      • Open Command Prompt
            cd c:\angular
            tsc inheritance.ts
            node inheritance.js
  Access Modifiers
      • Access Modifiers specify where the member of a class can be accessible.
      • That means it specifies whether the member of a class is accessible outside the class or not.
      • These are used to implement "security" in OOP.
      • For each member (property / method), we can specify the access modifier separately.
      • TypeScript compiler and Visual Studio Code Edtitor shows errors, if a developer try to access the member,
        which is not accessible.
      • "public" is the access modifier for all the members (property / method) in TypeScript class.
      • TypeScript supports three access modifiers:
             1. public (default)
             2. private
             3. protected
D. Harsha Vardhan (UI Expert)                                                            P a g e 36 | 454
                                                       Angular 7
       1. public (default):
           o The public members are accessible anywhere in the program (in the same class and outside the class
             also).
       2. private:
           o The private members are accessible within the same class only; If you try to access them outside the
              class, you will get compile-time error.
       3. protected:
           o The protected members are accessible within the same class and also in the corresponding child
              classes; If you try to access them outside the same class or child class, you will get compile-time error.
   Syntax of creating a member with access modifier:
   •    Property:
         class classname
         {
             accessmodifier property: datatype;
         }
   •    Method:
         class classname
         {
             accessmodifier methodname( arguments) : returntype
             {
             }
         }
  Access Modifiers - Example
   c:\angular\accessmodifiers.ts
D. Harsha Vardhan (UI Expert)                                                                P a g e 37 | 454
                                      Angular 7
   Compilation and Execution
      • Open Command Prompt
            cd c:\angular
            tsc accessmodifiers.ts
            node accessmodifiers.js
D. Harsha Vardhan (UI Expert)                     P a g e 38 | 454
                                                     Angular 7
  Interfaces
      • Interface is the model of a class, which describes the list of properties and methods of a class.
      • Interfaces doesn’t contain actual code; contains only list of properties and methods.
      • Interfaces doesn’t contain method implementation (method definition); it contains method declaration
        only, which defines method access modifier, method name, method arguments and method return type.
      • The child class that implements the interface must implement all the methods of the interface; if not,
        compile-time error will be shown at child class. The method name, parameters, return type and access
        modifier must be same in between "interface method (method at the interface)" and "class method
        (method at the class)".
      • Interfaces act as a mediator between two or more developers; one developer implements the interface,
        other developer creates reference variable for the interface and invokes methods; so interface is common
        among them.
      • The child class can implement the interface with “implements” keyword.
      • All the methods of interface is by default, "public".
      • One interface can be implemented by multiple classes; One class can implement multiple interfaces.
      • We can develop "multiple inheritance" by implementing multiple interfaces at-a-time in the same class.
   Steps for development of Interfaces
      • Create an interface:
              interface interfacename
              {
                  property: datatype;
D. Harsha Vardhan (UI Expert)                                                             P a g e 39 | 454
                                                  Angular 7
                   …
                   method( arguments ): returntype;
                   …
               }
      • Create a child class for the interface and implement it:
              class classname implements interfacename
              {
                  property: datatype;
                   method( arguments ) : returntype
                   {
                     code here
                   }
               }
  Interfaces - Example
   c:\angular\interfaces.ts
   Compilation and Execution
      • Open Command Prompt
            cd c:\angular
            tsc interfaces.ts
            node interfaces.js
D. Harsha Vardhan (UI Expert)                                      P a g e 40 | 454
                                                    Angular 7
  Enumerations
      • Enumeration is a collection of constants.
      • Enumeration acts as a data type.
      • We can use "enumeration" as a data type for the "enumeration variable" or "enumeration property".
      • The enumeration variable or enumeration property can store any one of the constants of the same
        enumeration.
      • Every constant of enumeration is represented with a number (starts from 0).
   Steps for development of enumeration
      • Create an enumeration:
              enum enumerationName
              {
                  constant1, constant2, …
              }
      • Create a property of enumeration type:
              class classname
              {
                  property: enumerationName;
              }
      • Create a variable of enumeration type:
              variableName: enumerationName;
      • Assign the value into enumeration variable or enumeration property:
               enumerationVariable = enumerationName.constant;
               this.enumerationProperty = enumerationName.constant;
D. Harsha Vardhan (UI Expert)                                                         P a g e 41 | 454
                                   Angular 7
  Enumerations - Example
   c:\angular\enumerations.ts
   Compilation and Execution
      • Open Command Prompt
            cd c:\angular
            tsc enumerations.ts
            node enumerations.js
D. Harsha Vardhan (UI Expert)                  P a g e 42 | 454
                                                      Angular 7
  Modules
      • In large scale applications, it is recommended to write each class in a separate file.
      • To access the class of one file in other file, we need the concept of "Modules".
      • Module is a file (typescript file), which can export one or more classes (or interfaces, enumerations etc.) to
        other files; The other files can import classes (or interfaces, enumerations etc.), that are exported by the
        specific file. We can't import the classes (or others) that are not exported.
      • We can export the class (or others), by using "export" keyword in the source file.
      • We can import the class (or others), by using "import" keyword in the destination file.
      • To represent:
            1.   current folder, we use "./".
            2.   sub folder in current folder, we use "./subfolder".
            3.   parent folder, we use "../".
   Steps for development of modules
      • Export a class in file1.ts
              export class className1
              {
                  …
              }
      • Import class in file2.ts:
              import { className1 } from "./file1.ts";
              class className2
              {
              }
  Modules - Example
   c:\angular\Student.ts
   c:\angular\StudentsList.ts
D. Harsha Vardhan (UI Expert)                                                              P a g e 43 | 454
                                   Angular 7
   Compilation and Execution
      • Open Command Prompt
            cd c:\angular
            tsc Student.ts
            tsc StudentsList.ts
            node StudentsList.js
D. Harsha Vardhan (UI Expert)                  P a g e 44 | 454
                                Angular 7
D. Harsha Vardhan (UI Expert)               P a g e 45 | 454
                                                     Angular 7
                                           Angular 7
  What is Angular?
      • Angular is a client side framework, which is used to create web applications. The framework provides
        skeleton of the project and specifies clear guidelines, where to write which type of code.
      • Angular can be used in combination with any server side platform such as Java, NodeJS, Asp.Net, PHP,
        Python etc.
      • Angular is developed using "TypeScript" language, which is a superset of JavaScript language.
      • Angular is the most-used client side framework.
      • Angular was developed by Google.
      • Angular is free-to-use (commercially too).
      • Angular is open-source. That means the source code of angular is available online for free of cost.
      • Angular is cross-platform. That means it works in all the operating systems.
      • Angular is cross-browser compatible. That means it works in all the browsers, except less than IE 9 (which
        is completely out-dated).
      • Angular is mainly used to create "data bindings". That means, we establish relation between a variable and
        html element; When the value of the variable is changed, the same will be automatically effected in the
        corresponding html element; and vice versa. So that the developer need not write any code for DOM
        manipulations (updating values of html tags, based on user requirements. for example, updating the list of
        categories when a new category added by the user). Thus the developer can fully concentrate on the
        application logic, instead of writing huge code for DOM manipulations. So we can achieve clean separation
        between "application logic" and "DOM manipulations".
      • Angular mainly works based on "Components". The component is a class, which reprensets a specific
        section (part) of the web page.
  Goals of Angular
      • Separation of DOM manipulation from application logic.
      • Separation of HTML logic from application logic.
      • Make SPA (Single Page Appliation) development easier. SPA provides client-side navigation system; but can
        communicate with server only through AJAX; the web page never gets refreshed fully. Ex: Gmail.
      • Separation of business logic from application logic.
      • Enable Unit testing. The components can be unit tested individually.
D. Harsha Vardhan (UI Expert)                                                            P a g e 46 | 454
                                                      Angular 7
  Versions of Angular
      • Angular 2          :   Sep 14th 2016
      • Angular 4          :   Mar 23rd 2017 [Angular 3.0 was skipped due to misalignment of router package 3.3.0]
      • Angular 5          :   Nov 1st 2017
      • Angular 6          :   May 4th 2018
  Angular (vs) AngularJS
      • “Angular 2” is not an extension to “Angular 1”; it is a completely “rebuilt” or “rewrite”. “Angular 2” is rewrite
        from the same team that built “AngularJS 1”.
      • “Angular 4”, “Angular 5” and “Angular 6” are mostly similar to “Angular 2”, except some internal changes
        for stability and performance.
      • “Angular 2+” means “Angular 2, Angular 4 and Angular 5”. Note: “Angular 3” is not released, to avoid the
        confusion of “router” package, which is already released with “3.3.0” version.
        Sl.                        AngularJS                                             Angular
        No
         1     “AngularJS” has performance drawbacks                 “Angular” is faster in performance because it
               because, the “digest loop” checks and updates         updates a single property that has been really
               all properties when a field or property has been      modified.
               modified.
                                                                     No digest loop and no need of any repetition.
               The digest loop may repeat up to 10 times; due
               to a watcher of one property can update other
               property.
         2     “AngularJS” is based on “JavaScript”, which is        “Angular” is based on “TypeScript”, which is
               “prototype-based OOP language”.                       “class-based OOP language”.
         3     “AngularJS” is based on “MVC architecture”. The       “Angular” is based on “Components”.
               code will be divided into three major parts called    Component is a class that contains stores
               “Model”, “View” and “Controller”. Model is an         data and also manipulates the data. View is a
               object that stores data. View is a html file that     html file that contains prensentation logic to
               contains presentation logic to display data.          display data.
               Controller is a function that manipulates data.
         4     “AngularJS” is mainly used for development of         “Angular” is also mainly used for
               “Single Page Applications”.                           development of “Single Page Applications”.
         5     Apart from data bindings, Angular 1 provides          Apart from data bindings, Angular 2 provides
               many additional features such as validations,         many additional features such as validations,
               routing, animations, services, filters, providers,    routing, animations, services, pipes, AJAX etc.
               factories, configuration, AJAX etc.
         6     Supports “Scopes” (Models) to store data.             Doesn’t supports Scopes; but supports
                                                                     Components alternatively.
         7     Supports only one expression syntax {{ }}.            Supports multiple expression syntaxes such
                                                                     as {{ }}, [], ().
D. Harsha Vardhan (UI Expert)                                                               P a g e 47 | 454
                                                     Angular 7
         8     Doesn’t provide CLI (Command Line Interface),       Provides CLI (Command Line Interface), to
               to generate components and services easily from     generate components and services easily
               the command prompt commands.                        from the command prompt commands.
  Angular (vs) jQuery
      • jQuery is a “library”, which provides a set of pre-defined functions to perform DOM manipulations directly.
      • Angular is a framework, which provides the complete application structure and set of concepts to organize
        the client side code completely, which enables the developers to work with “Data bindings” to avoid DOM
        manipulations directly.
  Angular (vs) React
      • React just acts as a "view layer", which provides necessary concepts to create data bindings in the view.
      • Angular is a "complete client side framework", which provides the complete application structure and set
        of concepts to organize the client side code completely, which enables the developers to work with “Data
        bindings” to avoid DOM manipulations directly.
      • Angular provides so many concepts such as services, directives, dependency injection, routing etc., which
        are not supported by React.
  Features of Angular
      • TypeScript based: Pre-defined code and User-defined code is developed based on TypeScript language.
      • Faster performance: “Angular 2+” executes faster than “AngularJS 1”.
      • Modular: Angular is divided into multiple small parts called “packages”. For example, "core", "common",
        "forms", "router" etc. The developer can use any of those modules based on the requirement.
  Browser Compatibility of Angular 2+
      • Angular 2+ supports the following browsers:
                      Browser                Supported Version
             Google Chrome             Any Version
             Mozilla Firefox           Any Version
             MS Internet Explorer      9+
             MS Edge                   13+
             Safari                    7+
             Android Browser           4.1+
D. Harsha Vardhan (UI Expert)                                                           P a g e 48 | 454
                                                   Angular 7
  Building Blocks of Angular
      • Angular is composed with the following “building blocks”:
          1. Component                 :   Application state + Application logic
          2. Metadata                  :   Details about the component / module etc.
          3. Template                  :   Design logic (HTML)
          4. Data Binding              :   Connection between HTML element and Component property
          5. Module                    :   Group of components, directives and pipes.
          6. Service                   :   Re-usable code / business logic.
          7. Dependency Injection      :   Injecting (loading) Service objects into Components.
          8. Directive                 :   Manipulating DOM elements
          9. Pipe                      :   Transforming values before displaying
  Angular Architecture
      • Angular 2+ framework is built based on this architecture.
  Types of compilation in Angular
      • Angular framework supports two types of compilation.
   Just-In-Time Compilation
              - Templates (.html files) and angular compiler files will be loaded into the browser and then the
                templates will be compiled automatically at the time of execution, when the component is invoked.
D. Harsha Vardhan (UI Expert)                                                           P a g e 49 | 454
                                                      Angular 7
               - The template will be compiled only for the first time, when it invoked, after loading the application
                 files into the browser.
               - Disadvantage: Performance is slower, because every time when you run the application, the
                 templates will be loaded into browser and compiled in the browser; it takes some time to compile.
               - Advantage: The developer need not compile it manually at command prompt, for each
                 modification of code.
               - This is recommended during the development.
               - Bootstrapping (loading app module into the browser) is done by “@angular/platform-browser-
                 dynamic” package.
   Ahead-Of-Time Compilation
               -   The developer gives “ngc” command in the Command Prompt; Then the “ngc” compiler compiles
                   the templates into javascript code; the compiled javascript code will be loaded into the browser and
                   it directly executes. There is no need of loading “templates (.html files)” and “angular compiler
                   scripts” into the browser.
               -   Advantage: Performance is faster, because the templates are already compiled.
               -   Disadvantage: The developer need to compile it manually at command prompt, for each
                   modification of code.
               -   This is recommended in the production server only.
               -   Bootstrapping is done by “@angular/platform-browser” package.
   1)    Installing NodeJS
   2)    Installing TypeScript
   3)    Installing Visual Studio Code
   4)    Creating Application Folder
   5)    Install “@angular/cli” package
   6)    Creating New Angular App
   7)    Open the App in Visual Studio Code
   8)    Edit code in app.component.html
   9)    Compile the application
   10) Run the application
  1) Installing NodeJS
        • Angular 2+ framework is available as a collection of packages; those packages are available in “npm”
          (NodeJS Package Manager). To use “npm”, NodeJS must be installed.
        • If you have already installed nodejs in your system, you can skip this step and go to step 2.
        • If you have not installed nodejs in your system, you continue this step.
        • Go to “https://nodejs.org”.
D. Harsha Vardhan (UI Expert)                                                               P a g e 50 | 454
                                                   Angular 7
      • Click on “9.4.0 Current”. Note: The version number can be very. Choose the latest version.
      • You will download a file called “node-v9.4.0-x64.msi”.
      • Go to Downloads folder and double click on “node-v9.4.0-x64.msi”.
D. Harsha Vardhan (UI Expert)                                                           P a g e 51 | 454
                                                  Angular 7
      • Click on “Next”.
      • Check the checkbox “I accept the terms in the License Agreement” and click on “Next”.
D. Harsha Vardhan (UI Expert)                                                         P a g e 52 | 454
                                Angular 7
      • Click on “Next”.
      • Click on “Next”.
D. Harsha Vardhan (UI Expert)               P a g e 53 | 454
                                           Angular 7
      • Click on “Install”.
      • Click on “Yes”.
      • Installation is in progress now.
D. Harsha Vardhan (UI Expert)                          P a g e 54 | 454
                                                    Angular 7
      • After installation is completed, click on “Finish”. Now NodeJS installation is finished.
      • Note: Automatically it adds the nodejs installation directory in the “Path” at environment variables of your
        computer.
  2) Installing TypeScript
      • Open “Command Prompt”.
      • Type npm install typescript -g in the Command prompt and press Enter.
      • After pressing Enter:
      • Now TypeScript successfully installed.
D. Harsha Vardhan (UI Expert)                                                             P a g e 55 | 454
                                                    Angular 7
  3) Installing Visual Studio Code
      • If you have installed Visual Studio Code already, you can skip this step and go to step 4.
      • If you don’t have installed Visual Studio Code, continue this step.
      • “Visual Studio Code” is the recommended editor for typescript and angular.
      • Go to https://code.visualstudio.com
      • Click on “Download for Windows”.
      • Note: The version number may be different at your practice time.
      • Go to “Downloads” folder; you can find “VSCodeSetup-x64-1.19.2.exe” file.
D. Harsha Vardhan (UI Expert)                                                             P a g e 56 | 454
                                                  Angular 7
      • Double click on “VSCodeSetup-x64-1.19.2.exe” file.
      • Click on “Yes”.
      • Click on “Next”.
D. Harsha Vardhan (UI Expert)                                 P a g e 57 | 454
                                             Angular 7
      • Click on “I accept the agreement”.
      • Click on “Next”.
      • Click on “Next”.
D. Harsha Vardhan (UI Expert)                            P a g e 58 | 454
                                                Angular 7
      • Click on “Next”.
      • Check the checkbox “Add Open with Code action to Windows Explorer file context menu”.
      • Check the checkbox “Add Open with Code action to Windows Explorer directory context menu”.
D. Harsha Vardhan (UI Expert)                                                      P a g e 59 | 454
                                     Angular 7
      • Click on “Next”.
      • Click on “Install”.
      • Installation is going on….
D. Harsha Vardhan (UI Expert)                    P a g e 60 | 454
                                                    Angular 7
      • Click on “Finish”.
  4) Create Application Folder
      • If you have already created “c:\angular” folder, you can skip this step and go to step 5.
      • If you don’t have created “c:\angular” folder, continue this step.
      • Go to “Computer” (or) “This PC”.
      • Go to “c:\”.
D. Harsha Vardhan (UI Expert)                                                             P a g e 61 | 454
                                                  Angular 7
      • Right click on the empty area and click on “New Folder”.
D. Harsha Vardhan (UI Expert)                                      P a g e 62 | 454
                                                 Angular 7
      • Type the folder name as “angular” and press Enter.
      • The “c:\angular” folder is ready now.
  5) Install @angular/cli package
      • Open “Command Prompt” and run the following command:
               cd c:\angular
               npm install @angular/cli -g
D. Harsha Vardhan (UI Expert)                                  P a g e 63 | 454
                                                  Angular 7
      • The “@angular/cli” package provides a set of commands to create new angular applications and also to
        create items in the project such as modules, components, pipes, services, directives etc.
      • Installing “@angular/cli” package globally will download the package files from internet into
        “C:\Users\Harsha\AppData\Roaming\npm\node_modules\@angular\cli” folder, which can be used from
        any folder in the entire system.
  6) Creating New Angular Application
      • Open “Command Prompt” and run the following command:
               cd c:\angular
               ng new app1
      • After creating application:
      • Now new application at “c:\angular\app1” folder is created.
D. Harsha Vardhan (UI Expert)                                                     P a g e 64 | 454
                                                Angular 7
  7) Open the Application in Visual Studio Code
      • Go to “Start” > “Visual Studio Code”.
      • Click on “File” – “Open Folder”.
D. Harsha Vardhan (UI Expert)                               P a g e 65 | 454
                                               Angular 7
      • Select the folder “c:\angular\app1”.
D. Harsha Vardhan (UI Expert)                              P a g e 66 | 454
                                                 Angular 7
      • Click on “Select Folder”.
  8) app.component.html
      • Go to “app1\src\app1\app.component.ts” in “Explorer” window in Visual Studio Code.
D. Harsha Vardhan (UI Expert)                                                      P a g e 67 | 454
                                             Angular 7
  9) Compile the application
      • Open “Command Prompt” and run the following command:
               cd c:\angular\app1\
               ng serve
      • Application compiled successfully:
D. Harsha Vardhan (UI Expert)                                  P a g e 68 | 454
                                                   Angular 7
       • Now new application at “c:\angular\app1” folder is created.
  10) Run the application
       • Open the browser and enter the following URL:
                http://localhost:4200
       • Output:
   •    c:\angular (folder)
            o app1 (folder)
                   ▪ package.json
                   ▪ node_modules (folder)
                   ▪ package-lock.json
                   ▪ tsconfig.json
                   ▪ tslint.json
                   ▪ protractor.conf.js
                   ▪ karma.conf.js
                   ▪ angular.json
D. Harsha Vardhan (UI Expert)                                          P a g e 69 | 454
                                                     Angular 7
                       ▪   src (folder)
                               • polyfills.ts
                               • favicon.ico
                               • index.html
                               • styles.css
                               • main.ts
                               • environments (folder)
                               • assets (folder)
                               • app (folders)
                                        o app.module.ts
                                        o app.component.ts
                                        o app.component.html
                                        o app.component.css
                                        o app.component.spec.ts
  1) package.json
      • The “package.json” file represents the configuration settings / meta data of the application.
      • It specifies package name, version, dependencies etc.
      • It is a fixed filename.
      • It is must, without which the application is not accepted.
      • It is a JSON files, which means it contains key/value pairs. Every key and value must be within double quotes
        (“ “) / single quotes (‘ ‘).
   Properties of “package.json”
        1    name                 Represents name of the application.
                                  It can be maximum of 214 characters.
                                  Non-URL friendly characters such as /, :, @ etc., are not allowed.
                                  Ex:    “name”: “app1”
        2    version              Represents version of the application. Ex: 1.0.0
                                  It should have 3 numbers major version, minor version, subminor version.
                                  Ex:    “version”: “1.0.0”
        4    license              Represents license of the application. Ex: MIT, ISC
                                  MIT:
                                     MIT stands for “Massachusetts Institute of Technology”.
D. Harsha Vardhan (UI Expert)                                                             P a g e 70 | 454
                                                           Angular 7
                                   MIT license allows to create private applications that can be used either
                                   privately within the organization and also can be shared with other
                                   known organizations.
                                   Ex:           “license”: “MIT”
                                ISC:
                                   ISC stands for “Internet Systems Consortium”.
                                   ISC license allows to create public applications that can be used
                                   anywhere.
                                   Ex:           “license”: “ISC”
        5    scripts            Represents a set of commands that can run on the Command Prompt to
                                run, test the applications using commands.
                                Ex:           “scripts”:
                                              “start”: “ng serve”
        4    private            Represents whether the application should be used privately within the
                                same organization or not.
                                If it is true, it can be used only within the same organization. Outside usage
                                is not permitted.
                                Ex:           “private”: true
        5    dependencies       Represents the list of packages that are to be installed to run the
                                application. These packages will be installed in both developer machine
                                and production server.
                                Ex: “dependencies”:
                                              “@angular/core”: “^5.2.0”
        6    devDependencies    Represents the list of packages that are to be installed to develop the
                                application. These packages will be installed only in the developer
                                machine; not in the production server.
                                Ex: “devDependencies”:
D. Harsha Vardhan (UI Expert)                                                             P a g e 71 | 454
                                               Angular 7
                                    “@angular/cli”: “~1.7.4”
   package.json
D. Harsha Vardhan (UI Expert)                                  P a g e 72 | 454
                                Angular 7
D. Harsha Vardhan (UI Expert)               P a g e 73 | 454
                                                    Angular 7
  Packages of Angular 2+
      • The angular 2+ framework is available as a collection of packages.
      • Each feature of the framework is represented as a package. For example, routing is available as a package
        called “@angular/router”.
      • We have to install (download) those packages in order to develop angular application.
      • The packages of angular 2+ are divided into two types:
             I. Angular Packages:
                    ▪ These packages are part of angular 2+ framework.
             II. Non-Angular Packages:
                    ▪ These packages are not part of angular 2+ framework; provided by third party companies, but
                      needed / useful in angular applications.
   I. Angular Packages:
         1    @angular/core
               This package provides classes and interfaces that are related to decorators, component life
               cycle, dependency injection etc., that are needed in every angular 2+ application.
               This is the mandatory package.
               Examples of decorators provided by @angular/core package: @Component, @NgModule,
               @Input, @Injectable, @Inject etc.
               Examples of component life cycle interfaces provided by @angular/core package: OnInit,
               DoCheck, AfterViewChecked, OnDestroy etc.
               This package contains a module called “ApplicationModule”, which contains the set of pre-
               defined scripts that are needed to run the angular application.
         2     @angular/common
               This package provides common directives and pipes that are needed in most of the angular
               applications.
               This is the mandatory package.
               Ex of directives provided by @angular/common package: ngIf, ngFor, ngSwitch, ngClass etc.
               Ex of pipes provided by @angular/common package: uppercase, lowercase, date, currency
               etc.
               This package contains a module called “CommonModule”, which contains the above
               specified directives and pipes.
D. Harsha Vardhan (UI Expert)                                                            P a g e 74 | 454
                                                    Angular 7
         3    @angular/platform-browser
              This package imports “ApplicationModule” from “@angular/core”, “CommonModule” from
              “@angular/common” and re-exports them as “BrowserModule”. Additionally, it provides
              some runtime services (such as “error handling, history handling” etc.), that are needed while
              running the application in the browser.
              This is the mandatory package.
         4    @angular/compiler
              This package is used to compile the “template” into a “javascript code”. We never invoke the
              angular compiler directly; we will call it indirectly through either “@angular/platform-
              browser-dynamic” or “@angular/platform-browser”.
              This is the mandatory package.
         5    @angular/platform-browser-dynamic
              An angular application can have any no. of modules. This package is used to bootstrap (start)
              executing a module, which execution should be started automatically at application startup.
              This is the mandatory package.
         6    @angular/forms
              This package is used for creating “two way data bindings” and “validations” in angular 2+
              applications. This package works based on another package called “zone.js”.
              This package has two modules: FormsModule and ReactiveFormsModule.
              This is the optional package.
         7    @angular/router
              This package is used to creating “routing” (page navigation) in angular 2+ applications.
              This package has one module: RouterModule
              This is the optional package.
         8    @angular/http
              This package is used to send ajax requests to server and get ajax response from server. This
              package works based on another package called “rxjs”.
              This package has one module: HttpClientModule
              This is the optional package.
D. Harsha Vardhan (UI Expert)                                                             P a g e 75 | 454
                                                        Angular 7
         9        @angular/animations
                  This package is used to create animations in angular 2+ applications.
                  This package has one module: AnimationsModule
                  This is the optional package.
         10       @angular/material
                  Used to use “angular material design” in angular applications.
                  This package has        several   modules:        MatButtonMoudle,      MatCheckboxModule,
                  MatMenuModule etc.
                  This is the optional package.
         11       @angular/cdk
                  Based on this package only, “angular material design” components are developed. So this
                  package must be used while using “@angular/material” package.
                  This is the optional package.
         12       @angular/cli
                  This package provides a set of commands to create new angular application and its code
                  items such as components, pipes, directives, services etc.
                  This is the mandatory package.
                  This package must be installed globally, with “-g” option.
   II. Non-Angular Packages
           1 typescript
                   This package provides typescript compiler, which is used to compile “typescript
                   files (.ts)” into “javascript files (.js)”.
                   This is the mandatory package.
                   This package must be installed globally, with “-g” option.
              2    systemjs
                   This package is used to load both angular framework-related and application
                   program-related “.js” files into the browser.
                   This is the mandatory package.
D. Harsha Vardhan (UI Expert)                                                                P a g e 76 | 454
                                                     Angular 7
           3   core-js
               This package contains polyfills, which are needed to run angular 5 application in
               Internet Explorer 9+.
               This is the mandatory package.
           4   rxjs
               This package “rxjs” (Reactive Extensions for JavaScript) provides necessary code
               for making ajax calls to server.
               This is the mandatory package.
           5   zone.js
               This package identifies the events in the browser and informs the same to angular
               framework; so that it can perform “change detection”.
               This is the mandatory package.
           6   jasmine
               This package is used to write test cases for unit testing of components.
               This is the mandatory package.
           7   jasmine
               This package is used to execute test cases within one browser.
               This is the mandatory package.
           8   karma
               This package is used to execute test cases on different browsers.
               This is the mandatory package.
           9   tslint
               This package is used to check whether the typescript files are following set of rules
               or not. For example, you can check the maximum length of the line in the code.
               This is the mandatory package.
  2) tsconfig.json
      • Every compiler has some configuration settings.
      • This file is used to set configuration settings of the “tsc” (Type Script Compiler).
      • The “tsc” compiler automatically reads the “tsconfig.json” file; and then only it compiles the “.ts” files into
        “.js” file.
D. Harsha Vardhan (UI Expert)                                                                  P a g e 77 | 454
                                                       Angular 7
      • This is a fixed filename.
   “tsconfig.json” – Configuration Settings
       1    target
             Represents javascript version, into which the “.ts” file have to be compiled. Ex: “es5”.
             Recommended: “es5”.
             Options: es3 | es5 | es6
        2    sourceMap
             true | false
             true: Generates “source map” files. The source map file contains mapping between line
             numbers of “.ts” file to “.js” file. Based on the source map files, you can debug the typescript
             code. It is recommended to generate source map files during development.
             false: “Source map” files will not be generated. So then we can debug “javascript code”
             only. Source map files are not required in production.
        3    experimentalDecorators
             true | false
             true: It supports decorators (such as @Component, @NgModule, @Injectable etc.)
             false: It doesn’t support decorators.
        4    emitDecoratorsMetaData
             true | false
             true: It supports decorators with meta data.
             false: It doesn’t support decorators with meta data.
        5    lib
             It represents the list of library files to be included while compilation of the typescript files.
             The angular 2+ application requires the following libraries:
             [ “es2017”, “dom” ]
             Note: These libraries will be installed automatically, along with “typescript” package.
D. Harsha Vardhan (UI Expert)                                                                  P a g e 78 | 454
                                                      Angular 7
             es2017:
             This library contains essential data type such as Number, String, Boolean, Object, Function,
             RegExp etc.
             dom:
             This library contains essential classes such as “HTMLElement”, “Document”, “Window” etc.
        6    outDir
             Specifies the directory (folder) where the compiled files needs to be stored.
  3) tslint.json
      • This file contains configuration settings for “tslint” tool, which is used to verify whether the typescript files
        are following a set of coding standards or not.
      • For example, we can check the maximum length of the line, indentation etc.
D. Harsha Vardhan (UI Expert)                                                                P a g e 79 | 454
                                Angular 7
D. Harsha Vardhan (UI Expert)               P a g e 80 | 454
                                Angular 7
D. Harsha Vardhan (UI Expert)               P a g e 81 | 454
                                                  Angular 7
  4) protractor.conf.js
      • This file contains configuration settings for “protractor” tool, which is used to perform unit testing of
        components.
D. Harsha Vardhan (UI Expert)                                                         P a g e 82 | 454
                                                    Angular 7
      • The “protractor” tool is used to execute the test cases that are defined using “jasmine”.
  5) karma.conf.js
      • This file contains configuration settings for “karma” tool, which is used to execute unit test cases on
        multiple browsers.
D. Harsha Vardhan (UI Expert)                                                            P a g e 83 | 454
                                                   Angular 7
  6) .angular-cli.json
      • This file contains configuration settings for “@angular/cli” tool, which is used create, compile and run the
        application.
      • It contains settings such as home page (index.html), startup file name (main.ts), css file name (styles.css)
        etc.
D. Harsha Vardhan (UI Expert)                                                            P a g e 84 | 454
                                Angular 7
D. Harsha Vardhan (UI Expert)               P a g e 85 | 454
                                                   Angular 7
  7) polyfills.ts
      • This file contains configuration settings for importing (loading) polyfills which are needed to run angular
        applications on old browsers such as Internet Explorer.
D. Harsha Vardhan (UI Expert)                                                           P a g e 86 | 454
                                                     Angular 7
  8) src/styles.css
      • This file contains CSS styles that are applicable for entire application.
D. Harsha Vardhan (UI Expert)                                                       P a g e 87 | 454
                                                      Angular 7
  9) src/index.html
      • This file is the home page (startup page) for the entire application.
      • The content of the entire application appears in the samee html file only.
      • This file invokes the “AppComponent” using <app-root></app-root> tag.
  10) src/main.ts
      • This is the first typescript file that executes in the angular application.
      • It enables the “Production mode” and specifies startup module:
   Application Modes in Angular
     1. Development Mode:
          • Change Detection occurs twice. Raises error if any difference detected between first attempt and second
            attempt. This is to identity whether any side effects in change detection.
D. Harsha Vardhan (UI Expert)                                                           P a g e 88 | 454
                                                   Angular 7
          • It is the default mode.
     2. Production Mode
          • Change Detection occurs only once..
          • Syntax: enableProdMode();
   Startup Module
      • Angular application can has any no. of modules.
      • The “startup module” is a module, which needs to be executed first in the angular application.
      • By default startup module name is “AppModule”.
      • Loading the startup module is also called as “Bootstrapping the module”.
      • Syntax: platformBrowserDynamic().bootstrapModule(Modulename);
  11) src/app/app.module.ts
      • This file contains definition of “AppModule”.
      • Angular application can has any no. of modules. It should contain atleast one module, that is called as
        “AppModule”.
      • This file imports “AppComponent” from “app.component.ts” file and bootstraps the same in “AppModule”.
  12) src/app/app.component.ts
      • This file contains definition of “AppComponent”.
      • Angular application can has any no. of components. It should contain atleast one component, that is called
        as “AppComponent”.
D. Harsha Vardhan (UI Expert)                                                          P a g e 89 | 454
                                                    Angular 7
      • This file specifies path of template file “app.component.html” and css file “app.component.css” file.
  13) src/app/app.component.html
      • This file contains actual content (html code) of the component.
      • Every component should have a template.
      • This template content will be rendered into <app-root></app-root> tag at index.html.
  14) src/app/app.component.css
      • This file contains css styles of “AppComponent”.
      • One component can have only one css file.
      • By default, this file is empty.
  15) src/app/app.component.spec.ts
      • This file contains test cases for “AppCompoent”.
      • The test case files should have “spec.ts” file extension.
D. Harsha Vardhan (UI Expert)                                                           P a g e 90 | 454
                                                  Angular 7
   What is Component?
      • The component class represents certain section of the web page. For example, “login form” is represented
        as a “Login Component”.
      • The component class includes “properties” (to store data), “methods” (event handler methods to
        manipulate data).
      • Every “angular 2+ application” contains at-least one component, which is called as “app component”. You
        can create any no. of components in the project.
      • The component is invoked (called) through a custom tag (user-defined tag). For example, “login
        component” is invoked through <login></login> tag. The custom tag is also called as “selector”.
      • The component class should have a decorator called “@Component()”, to define that the class is a
        component class.
   Syntax to create Component:
         import { Component } from “@angular/core”;
         @Component( meta data )
         class classname
         {
             property: datatype = value;
             method( arguments ) : returntype
             {
             }
         }
D. Harsha Vardhan (UI Expert)                                                         P a g e 91 | 454
                                                    Angular 7
   Meta Data Properties of Component:
         1   selector         Represents the selector (tag) to invoke the component.
         2   template         Represents the template content of the component.
         3   templateUrl      Represents the html file that has to be rendered when the component is
                              invoked.
         4   styleUrls        Represents the list of style sheets (css files) that have to be loaded for the
                              component.
         5   providers        Represents the list of services to be imported into the component.
         6   animations       Represents the list of animations to be performed in the component.
   What is Module?
      • Module is a part of the project.
      • Module is a collection of components, directives and pipes that are related to one specific task of the
        project.
      • Ex: “Net banking” project contains modules like “Savings account module”, “Credit cards module” etc.
      • Every angular application should contain at least one module, which is called as “root module” or “app
        module”. The “app component” will be a part of the “app module”. Modules can share its components and
        pipes to other modules.
      • Module is a class, with “@NgModule” decorator.
   Syntax to create Module:
                 import { NgModule } from “@angular/core”;
                 @NgModule( meta data )
                 class classname
                 {
                 }
   Meta Data Properties of Module:
             1    declarations
                  Represents the list of components and pipes that are members of the current module.
             2    imports
                  Represents the list of modules that you want to import into the current module.
                  You must import “BrowserModule” into the browser, which can be imported from
                  “@angular/platform-browser”.
D. Harsha Vardhan (UI Expert)                                                             P a g e 92 | 454
                                                   Angular 7
                 The “BrowserModule” imports “ApplicationModule” from “@angular/core”,
                 “CommonModule” from “@angular/common” and re-exports them.
                 The “BrowserModule” must be imported only in the “app module (root module)”; we
                 need not import it in other child modules.
                 Other modules to import: FormsModule, ReactiveFormsModule,
                 BrowserAnimationsModule, HttpClientModule, RouterModule etc.
            3    exports
                 Represents the list of components or pipes that are to be exported to other modules.
            4    bootstrap
                 Represents the component that is to be displayed in the web page. Only “app module”
                 has to bootstrap “app component”. Other modules should not bootstrap any
                 component.
            5    providers
                 Represents list of services to be imported into the module.
   Syntax to bootstrap (start) the module into the browser:
                import { platformBrowserDynamic } from “@angular/platform-browser-dynamic”;
                platformBrowserDynamic( ).bootstrapModule( moduleclassname );
      • The “data binding” is the relation between “component” and the “template”.
      • When the value of “component” is changed, the “template” will be changed automatically. When the value
        of “template” is changed, the “component” will be changed automatically.
      • Data binding is four types:
           A) Interpolation Binding
           B) Property Binding
           C) Event Binding
           D) Two-Way Binding
D. Harsha Vardhan (UI Expert)                                                          P a g e 93 | 454
                                                    Angular 7
   A) Interpolation Binding
       • Syntax: {{property}}
       • It displays the value of the property in the template.
       • When the value of the property is changed, the same value will be automatically updated in the template.
   B) Property Binding
       •   Syntax: <tag [attribute]=” property ”> </tag>
       •   “Property binding” is used to send data from component to template and assign the same into an
           attribute of the tag.
       •   When the value of the property is changed, the same value will be automatically updated in the
           template.
   C) Event Binding
       •   Syntax: <tag (event)=”method( )”> </tag>
       •   It is used to pass event notifications from template to component.
D. Harsha Vardhan (UI Expert)                                                          P a g e 94 | 454
                                                     Angular 7
   D) Two-Way Binding
       •     Syntax: <tag [(ngModel)]=”property”> </tag>
       •     “Two Way Binding” (a.k.a Two-Way Data Binding) is a combination of both “property binding” and
             “event binding”.
       •     When you change the value of “property”, the same will be automatically updated in the “html
             element”.
       •     When you change the value of “html element”, the same will be automatically updated in the
             “property”.
       •     The “ngModel” is a pre-defined directive, which is used to create two-way binding.
       •     Two-Way Binding is applicable only for <input> and <select> tags.
       •     “FormsModule” must be imported in order to use two-way binding.
  Data Bindings - Example
   Creating Application
      • Open Command Prompt and enter the following commands:
           cd c:\angular
           ng new app1
   c:\angular\app1\package.json
D. Harsha Vardhan (UI Expert)                                                             P a g e 95 | 454
                                           Angular 7
   c:\angular\app1\src\app\app.module.ts
D. Harsha Vardhan (UI Expert)                          P a g e 96 | 454
                                          Angular 7
   c:\angular\app1\src\app\app.component.ts
   c:\angular\app1\src\app\app.component.html
D. Harsha Vardhan (UI Expert)                         P a g e 97 | 454
                                                Angular 7
   Executing the application:
      • Open Command Prompt and enter the following commands:
               cd c:\angular\app1
               ng serve
      • Open the browser and enter the following URL:
               http://localhost:4200
D. Harsha Vardhan (UI Expert)                                   P a g e 98 | 454
                                             Angular 7
  Login - Example
   Creating Application
      • Open Command Prompt and enter the following commands:
               cd c:\angular
               ng new app1
D. Harsha Vardhan (UI Expert)                                   P a g e 99 | 454
                                  Angular 7
   c:\angular\app1\package.json
D. Harsha Vardhan (UI Expert)                 P a g e 100 | 454
                                           Angular 7
   c:\angular\app1\src\app\app.module.ts
   c:\angular\app1\src\app\app.component.ts
D. Harsha Vardhan (UI Expert)                          P a g e 101 | 454
                                                Angular 7
   c:\angular\app1\src\app\app.component.html
   Executing the application:
      • Open Command Prompt and enter the following commands:
            cd c:\angular\app1
            ng serve
      • Open the browser and enter the following URL:
            http://localhost:4200
  Registration Form - Example
      • We are going to create a sample registration form, which demonstrates textboxes, checkboxes, radio
        buttons and dropdownlists.
D. Harsha Vardhan (UI Expert)                                                   P a g e 102 | 454
                                             Angular 7
   Creating Application
      • Open Command Prompt and enter the following commands:
            cd c:\angular
            ng new app1
   c:\angular\app1\package.json
D. Harsha Vardhan (UI Expert)                                   P a g e 103 | 454
                                           Angular 7
   c:\angular\app1\src\app\app.module.ts
D. Harsha Vardhan (UI Expert)                          P a g e 104 | 454
                                          Angular 7
   c:\angular\app1\src\app\app.component.ts
   c:\angular\app1\src\app\app.component.html
D. Harsha Vardhan (UI Expert)                         P a g e 105 | 454
                                                Angular 7
   Executing the application:
      • Open Command Prompt and enter the following commands:
            cd c:\angular\app1
            ng serve
      • Open the browser and enter the following URL:
            http://localhost:4200
D. Harsha Vardhan (UI Expert)                                   P a g e 106 | 454
                                                    Angular 7
  Style
      • It is used to set the CSS property value dynamically at run time.
      • When the value of component property is changed, the value of css property will be automatically gets
        changed.
      Syntax:
             <tag [style.cssproperty]=”component property”>
             </tag>
  Style - Example
   Creating Application
      • Open Command Prompt and enter the following commands:
            cd c:\angular
            ng new app1
   c:\angular\app1\package.json
D. Harsha Vardhan (UI Expert)                                                      P a g e 107 | 454
                                           Angular 7
   c:\angular\app1\src\app\app.module.ts
   c:\angular\app1\src\app\app.component.ts
D. Harsha Vardhan (UI Expert)                          P a g e 108 | 454
                                                     Angular 7
   c:\angular\app1\src\app\app.component.html
   Executing the application:
      • Open Command Prompt and enter the following commands:
            cd c:\angular\app1
            ng serve
      • Open the browser and enter the following URL:
            http://localhost:4200
  ngClass
      • It is used to set the css class name dynamically at run time.
      • When the value of component property is changed, the css class will be automatically changed.
      • Use this directive to set styles with multiple properties, conditionally at runtime.
      Syntax:
D. Harsha Vardhan (UI Expert)                                                             P a g e 109 | 454
                                               Angular 7
            <tag [ngClass]=”component property”>
            </tag>
  ngClass - Example
   Creating Application
      • Open Command Prompt and enter the following commands:
            cd c:\angular
            ng new app1
   c:\angular\app1\package.json
D. Harsha Vardhan (UI Expert)                                   P a g e 110 | 454
                                           Angular 7
   c:\angular\app1\src\app\app.module.ts
   c:\angular\app1\src\app\app.component.ts
D. Harsha Vardhan (UI Expert)                          P a g e 111 | 454
                                                      Angular 7
   c:\angular\app1\src\app\app.component.html
   c:\angular\app1\src\app\app.component.css
   Executing the application:
         • Open Command Prompt and enter the following commands:
               cd c:\angular\app1
               ng serve
         • Open the browser and enter the following URL:
               http://localhost:4200
  ngIf
         • The “ngIf” displays the element if the condition is “true”; otherwise the element will be deleted from DOM.
D. Harsha Vardhan (UI Expert)                                                              P a g e 112 | 454
                                               Angular 7
      Syntax:
            <tag *ngIf=”condition”>
            </tag>
      • The “ngIf” must be prefixed with “*”, to mark that it accepts “micro syntax”, which is not just an
        “expression”, it accepts its own syntax.
      • Use “ngIf” if you want to display some content based on the condition. The content appers when the
        condition is true, it disappears when the condition is false.
  ngIf - Example
   Creating Application
      • Open Command Prompt and enter the following commands:
            cd c:\angular
            ng new app1
   c:\angular\app1\package.json
D. Harsha Vardhan (UI Expert)                                                    P a g e 113 | 454
                                           Angular 7
   c:\angular\app1\src\app\app.module.ts
   c:\angular\app1\src\app\app.component.ts
D. Harsha Vardhan (UI Expert)                          P a g e 114 | 454
                                                    Angular 7
   c:\angular\app1\src\app\app.component.html
   Executing the application:
      • Open Command Prompt and enter the following commands:
            cd c:\angular\app1
            ng serve
      • Open the browser and enter the following URL:
            http://localhost:4200
  ngIf and else
      • The “ngIf and else” displays one element if it is “true”; otherwise it displays another element.
       Syntax:
D. Harsha Vardhan (UI Expert)                                                             P a g e 115 | 454
                                                   Angular 7
             <tag *ngIf=”condition; then template1; else template2”>
             </tag>
             <ng-template #template1>
             </ng-template>
             <ng-template #template2>
             </ng-template>
      • The “ng-template” is a container, inside which you can place any no. of tags.
      • Use “ngIf and else”, if you want to display one content for the “true” case, another content fir the “false”
        case.
  ngIf and else - Example
   Creating Application
      • Open Command Prompt and enter the following commands:
            cd c:\angular
            ng new app1
   c:\angular\app1\package.json
D. Harsha Vardhan (UI Expert)                                                           P a g e 116 | 454
                                           Angular 7
   c:\angular\app1\src\app\app.module.ts
   c:\angular\app1\src\app\app.component.ts
D. Harsha Vardhan (UI Expert)                          P a g e 117 | 454
                                                Angular 7
   c:\angular\app1\src\app\app.component.html
   Executing the application:
      • Open Command Prompt and enter the following commands:
            cd c:\angular\app1
            ng serve
      • Open the browser and enter the following URL:
            http://localhost:4200
D. Harsha Vardhan (UI Expert)                                   P a g e 118 | 454
                                                   Angular 7
  ngSwitch
      • The “ngSwitch” checks the value of a variable, whether it matches with any one of the “cases” and displays
        the element when it matches with anyone.
      • Use “ngSwitch” if you want to display some content for every possible value in a variable.
      Syntax:
             <tag [ngSwitch] =”property”>
                <tag *ngSwitchCase=” ‘value‘ ”></tag>
                <tag *ngSwitchCase=” ‘value‘ ”></tag>
                <tag *ngSwitchCase=” ‘value‘ ”></tag>
                <tag *ngSwitchDefault></tag>
             </tag>
  ngSwitch - Example
   Creating Application
      • Open Command Prompt and enter the following commands:
                cd c:\angular
                ng new app1
   c:\angular\app1\package.json
D. Harsha Vardhan (UI Expert)                                                           P a g e 119 | 454
                                           Angular 7
   c:\angular\app1\src\app\app.module.ts
D. Harsha Vardhan (UI Expert)                          P a g e 120 | 454
                                             Angular 7
   c:\angular\app1\src\app\app.component.ts
   c:\angular\app1\src\app\app.component.html
   Executing the application:
      • Open Command Prompt and enter the following commands:
            cd c:\angular\app1
D. Harsha Vardhan (UI Expert)                                   P a g e 121 | 454
                                                      Angular 7
             ng serve
      • Open the browser and enter the following URL:
             http://localhost:4200
  ngFor
      • It is used to repeat the tag once for each element in the array. It generates (repeats) the give content once
        for one element of the array. For example, you are reading friends names from an array and displaying the
        same as a bulleted list.
      • We have to prefix “*” before ”ngFor”, as it is the micro syntax. The “micro syntax” means, it’s not just a value;
        we can write some complex code in it.
             arrayname = [ value1, value2, … ];
      • Ex: Displaying proucts list in the online shopping website.
      • Use “ngFor” to display list of records. Ex: List of banks, list of salesman and their sales etc.
          Syntax:
                <tag *ngFor=”let variable of arrayname”>
                </tag>
  ngFor - Example
   Creating Application
      • Open Command Prompt and enter the following commands:
             cd c:\angular
             ng new app1
D. Harsha Vardhan (UI Expert)                                                               P a g e 122 | 454
                                  Angular 7
   c:\angular\app1\package.json
D. Harsha Vardhan (UI Expert)                 P a g e 123 | 454
                                                Angular 7
   c:\angular\app1\src\app\app.module.ts
   c:\angular\app1\src\app\app.component.ts
   c:\angular\app1\src\app\app.component.html
   Executing the application:
      • Open Command Prompt and enter the following commands:
            cd c:\angular\app1
            ng serve
      • Open the browser and enter the following URL:
            http://localhost:4200
D. Harsha Vardhan (UI Expert)                                   P a g e 124 | 454
                                                   Angular 7
  ngFor with Object Array
       • First you will store a set of objects inside an array. Read those objects one-by-one by using “ngFor” and
         display the data in table format.
          Example: Reading and displaying product names and prices.
   •    Create Object Array:
         arrayreferencevariable : classname[] =[
              new classname(),
              new classname(),
              …
         ];
   •    ngFor with Object Array:
         <tag *ngFor="let variable or arrayreferencevariable">
              variable.property1
              variable.property2
              …
         </tag>
  ngFor with Object Array - Example
   Creating Application
       • Open Command Prompt and enter the following commands:
              cd c:\angular
D. Harsha Vardhan (UI Expert)                                                          P a g e 125 | 454
                                  Angular 7
            ng new app1
            cd c:\angular\app1
            ng g class Employee
   c:\angular\app1\package.json
D. Harsha Vardhan (UI Expert)                 P a g e 126 | 454
                                           Angular 7
   c:\angular\app1\src\app\app.module.ts
   c:\angular\app1\src\app\employee.ts
   c:\angular\app1\src\app\app.component.ts
D. Harsha Vardhan (UI Expert)                          P a g e 127 | 454
                                                Angular 7
   c:\angular\app1\src\app\app.component.html
   Executing the application:
      • Open Command Prompt and enter the following commands:
            cd c:\angular\app1
            ng serve
      • Open the browser and enter the following URL:
            http://localhost:4200
D. Harsha Vardhan (UI Expert)                                   P a g e 128 | 454
                                                    Angular 7
  ngFor with Add, Remove
       • We can allow the user to add new records (objects) to existing array. The user can also delete existing
         records.
       • We use “push” function to add new object to array.
       • We use “splice” function to remove existing object from the array.
  Steps:
   •    Adding element to array:
           arrayvariable.push(value);
   •    Removing element from array:
           arrayvariable.splice(index, count);
  ngFor with Add, Remove - Example
   Creating Application
       • Open Command Prompt and enter the following commands:
              cd c:\angular
              ng new app1
              cd c:\angular\app1
              ng g class Employee
   c:\angular\app1\package.json
D. Harsha Vardhan (UI Expert)                                                        P a g e 129 | 454
                                           Angular 7
   c:\angular\app1\src\app\app.module.ts
   c:\angular\app1\src\app\employee.ts
D. Harsha Vardhan (UI Expert)                          P a g e 130 | 454
                                          Angular 7
   c:\angular\app1\src\app\app.component.ts
D. Harsha Vardhan (UI Expert)                         P a g e 131 | 454
                                                Angular 7
   c:\angular\app1\src\app\app.component.html
   Executing the application:
      • Open Command Prompt and enter the following commands:
               cd c:\angular\app1
               ng serve
      • Open the browser and enter the following URL:
               http://localhost:4200
D. Harsha Vardhan (UI Expert)                                   P a g e 132 | 454
                                                          Angular 7
      • Try to add, remove employees.
  ngFor with Searching and Sorting
      • We can search for some content in the array.
      • We can allow the user to sort the data based on a specific property.
      • We use “filter” function to search content. The filter function receives a callback function, which gets
        executed once for each item in the array, in the sequence. If the callback function returns “true”, the item
        will be kept; if it returns “false”, the item will be skipped; thus it collects all the items that has “true”, forms
        an array with those elements and returns the new array.
      • We use “sort” function to sort data. The sort function receives a callback function, which gets called for each
        pair of items in the list. We should return an integer (either negative, 0, or positive). If negative number is
        returned, the item1 comes first. If the “0” is returned, no changes will be done; original order of items will
        be kept as it is. If positive number is returned, item2 comes first, item1 is next.
  Steps:
    • Searching:
           arryname.filter((item) => { return true or false; } );
    • Sorting:
           arrayname.sort(
              (item1, item2) =>
D. Harsha Vardhan (UI Expert)                                                                 P a g e 133 | 454
                                                 Angular 7
                 if (item1 is less than item2)
                    return -1;
                 else if (item1 > item2)
                    return 1;
                 else
                    return 0;
  ngFor with Searching and Sorting- Example
   Creating Application
      • Open Command Prompt and enter the following commands:
             cd c:\angular
             ng new app1
             cd c:\angular\app1
             ng g class Employee
   c:\angular\app1\package.json
D. Harsha Vardhan (UI Expert)                                   P a g e 134 | 454
                                           Angular 7
   c:\angular\app1\src\app\app.module.ts
   c:\angular\app1\src\app\employee.ts
D. Harsha Vardhan (UI Expert)                          P a g e 135 | 454
                                          Angular 7
   c:\angular\app1\src\app\app.component.ts
D. Harsha Vardhan (UI Expert)                         P a g e 136 | 454
                                                Angular 7
   c:\angular\app1\src\app\app.component.html
   Executing the application:
      • Open Command Prompt and enter the following commands:
            cd c:\angular\app1
            ng serve
      • Open the browser and enter the following URL:
            http://localhost:4200
D. Harsha Vardhan (UI Expert)                                   P a g e 137 | 454
                                                   Angular 7
      • Try to click on “Search” and “Sort” buttons.
  Multiple Components
      • We can create any no. of components in an application. The component represents a specific section in the
        web page. The component is a class with properties and methods.
      • At root level, only one component should be there, which is called as "AppComponent". All other
        components should be children of AppComponent.
      • We use the child component’s selector to invoke the child component in the parent component.
  Steps:
           <childselector> </childselector>
D. Harsha Vardhan (UI Expert)                                                         P a g e 138 | 454
                                             Angular 7
  Multiple Components - Example
   Creating Application
      • Open Command Prompt and enter the following commands:
            cd c:\angular
            ng new app1
            cd c:\angular\app1
            ng g component India
            ng g component USA
            ng g component NewDelhi
            ng g component NewMumbai
            ng g component NewYork
            ng g component Washington
   c:\angular\app1\package.json
D. Harsha Vardhan (UI Expert)                                   P a g e 139 | 454
                                    Angular 7
   c:\angular\app1\src\styles.css
D. Harsha Vardhan (UI Expert)                   P a g e 140 | 454
                                           Angular 7
   c:\angular\app1\src\app\app.module.ts
   c:\angular\app1\src\app\app.component.ts
   c:\angular\app1\src\app\app.component.html
   c:\angular\app1\src\app\india\india.component.ts
D. Harsha Vardhan (UI Expert)                          P a g e 141 | 454
                                           Angular 7
   c:\angular\app1\src\app\india\india.component.html
   c:\angular\app1\src\app\usa\usa.component.ts
   c:\angular\app1\src\app\usa\usa.component.html
   c:\angular\app1\src\app\new-delhi\new-delhi.component.ts
D. Harsha Vardhan (UI Expert)                                 P a g e 142 | 454
                                          Angular 7
   c:\angular\app1\src\app\new-delhi\new-delhi.component.html
   c:\angular\app1\src\app\new-mumbai\new-mumbai.component.ts
   c:\angular\app1\src\app\new-mumbai\new-mumbai.component.html
   c:\angular\app1\src\app\new-york\new-york.component.ts
D. Harsha Vardhan (UI Expert)                                     P a g e 143 | 454
                                                Angular 7
   c:\angular\app1\src\app\new-york\new-york.component.html
   c:\angular\app1\src\app\washington\washington.component.ts
   c:\angular\app1\src\app\washington\washington.component.html
   Executing the application:
      • Open Command Prompt and enter the following commands:
            cd c:\angular\app1
            ng serve
      • Open the browser and enter the following URL:
            http://localhost:4200
D. Harsha Vardhan (UI Expert)                                     P a g e 144 | 454
                                                 Angular 7
  Multiple Modules
      • The “angular 2+ application” can have any no. of modules.
      • “App Module” is the main module; it contains “AppComponent”.
      • Child modules contain child components, which can be called in the “AppComponent”.
  Multiple Modules - Example
   Creating Application
      • Open Command Prompt and enter the following commands:
            cd c:\angular
            ng new app1
            cd c:\angular\app1
            ng g component India
            ng g component USA
            ng g component NewDelhi
            ng g component NewMumbai
D. Harsha Vardhan (UI Expert)                                                     P a g e 145 | 454
                                        Angular 7
            ng g component NewYork
            ng g component Washington
            ng g module IndiaModule
            ng g module UsaModule
   c:\angular\app1\package.json
D. Harsha Vardhan (UI Expert)                       P a g e 146 | 454
                                           Angular 7
   c:\angular\app1\src\styles.css
   c:\angular\app1\src\india-module\india-module.module.ts
   c:\angular\app1\src\usa-module\usa-module.module.ts
   c:\angular\app1\src\app\app.module.ts
D. Harsha Vardhan (UI Expert)                                P a g e 147 | 454
                                           Angular 7
   c:\angular\app1\src\app\app.component.ts
   c:\angular\app1\src\app\app.component.html
   c:\angular\app1\src\app\india\india.component.ts
D. Harsha Vardhan (UI Expert)                          P a g e 148 | 454
                                           Angular 7
   c:\angular\app1\src\app\india\india.component.html
   c:\angular\app1\src\app\usa\usa.component.ts
   c:\angular\app1\src\app\usa\usa.component.html
   c:\angular\app1\src\app\new-delhi\new-delhi.component.ts
D. Harsha Vardhan (UI Expert)                                 P a g e 149 | 454
                                          Angular 7
   c:\angular\app1\src\app\new-delhi\new-delhi.component.html
   c:\angular\app1\src\app\new-mumbai\new-mumbai.component.ts
   c:\angular\app1\src\app\new-mumbai\new-mumbai.component.html
   c:\angular\app1\src\app\new-york\new-york.component.ts
   c:\angular\app1\src\app\new-york\new-york.component.html
D. Harsha Vardhan (UI Expert)                                     P a g e 150 | 454