Skip to main content

index

  • directives - structural (ngIf, ngFor), Attribute directives - ngStyle, ngClass
  • modules and lazy loading modules, component, service
  • Service Provided
    • provided in root(1 instance across project);
    • providers in module(1 instance per module);
    • providers in @Component(1 instance per component)
  • singleton, observer pattern(using new subject())
  • decorators(@Input, @Outpout, @injectable, @inject, @ngModule, @component, @viewChild, @viewChildren)
  • ng-template, ng-container, ng-content
  • pipes, httpinterceptor, guards, canactivate, candeactivate
  • loadChildren,
  • EventEmitter
  • formModule, commonModule, HttpModule, RouterModule
  • Reactive Forms : FormBuilder, FormGroup, Validators, FormControl (e.g this.fb.group({firstName: ['', Validators.required]}))
  • imports and exports in module
  • ViewEncapsulation.None and Emulated
  • pipe, map, mergeMap, flatMap, take, takeUnitl, forkJoin, filter, concatMap, switchMap
  • Subject, .next(), .subscribe, asObervable(), BehaviorSubject, ReplaySubject
  • component lifecycle (ngOnInit, ngAfterViewInit, ngOnDestroy)
  • change detection
  • angular universal
  • Calling a child component method from parent

Testing

  • Jasmine (behavior-driven development (BDD) framework for writing unit tests, functions like describe, it,)
  • Karma (test runner, to run unit tests,
    • launches browsers (or browser-like environments))
    • designed to execute tests in various browsers simultaneously.
  • Protractor : end-to-end (E2E) testing framework, simulate user interactions and test your application's functionality in a real browser
  • In a continuous integration environment, Karma can be configured to run tests automatically whenever changes are pushed to the repository, ensuring that the codebase remains stable and functional across different browsers.
  • TestBed : part of the @angular/core/testing module
  • Cypress: Although primarily an E2E testing tool, Cypress can also be used for certain types of integration and end-to-end testing in Angular applications.