Tuesday, October 25, 2022

Angular tutoral part 2 - AngularDirectives, Built In and Custom

 

Angular  part 2

 

Check full video:

Directives

Built In

Custom

Directives

•     Directives are classes that add additional behavior to elements in your Angular applications. Use Angular's built-in directives to manage forms, lists, styles, and what users see.

•     Example @component itself is a directive

•     Two types

•      Built in Directives

•      Custom Directives

 

 

Builtin  directives

•     Also called  built-in structural directives

•     NgClass—adds and removes a set of CSS classes.

•     NgStyle—adds and removes a set of HTML styles.

•     NgModel—adds two-way data binding to an HTML form element.

•     NgIf—conditionally creates or disposes of subviews from the template.

•     NgFor—repeat a node for each item in a list.

•     NgSwitch—a set of directives that switch among alternative views.

NGIF

•      Helps to conditionally render elements

•      Add or remove an element by

•      applying an NgIf directive to a host element.

•      <app-item-detail *ngIf="isActive" [item]="item"></app-item-detail>

 

•      Check nulls

•      <div *ngIf="currentCustomer">Hello, {{currentCustomer.name}}</div>

NGFOR

•     Use to Loop through array elements ,render a list from an array property

•     Define a block of HTML that determines how Angular renders a single item.

•     To list your items, assign the short hand let item of items to *ngFor.

 

•     <div *ngFor="let item of items">{{item.name}}</div>

•     Store each item in the items array in the local item looping variable

•     Make each item available to the templated HTML for each iteration

•     Translate "let item of items" into an <ng-template> around the host element

•     Repeat the <ng-template> for each item in the list

NGFOR2

•     Get the index of *ngFor in a template input variable and

•     use it in the template.

•     <div *ngFor="let item of items; let i=index">

•     {{i + 1}} - {{item.name}}</div>

 

•     Reduce the number of calls your application makes to the server by tracking changes to an item list. With the *ngFor trackBy property, Angular can change and re-render only those items that have changed, rather than reloading the entire list of items.

 

•     method

•     In this example, the value to track is the item's id. If the browser has already rendered id, Angular keeps track of it and doesn't re-query the server for the same id.

•     trackByItems(index: number, item: Item): number { return item.id; }

 

•     <div *ngFor="let item of items; trackBy: trackByItems">

•       ({{item.id}}) {{item.name}}

•     </div>

Ngclass

•     Add or remove multiple CSS classes simultaneously with ngClass.

 

•     <div [ngClass]="currentClasses">This div is initially saveable, unchanged, and special.</div>

•     Here ngclass is calling a method which sets the classes

•     Method

•     currentClasses: Record<string, boolean> = {};

•     setCurrentClasses() { // CSS classes: added/removed per current state of component properties

•     this.currentClasses = { saveable: this.canSave, modified: !this.isUnchanged, special: this.isSpecial };

NGstyle

•       Use NgStyle to set multiple inline styles simultaneously, based on the state of the component.

•       To use NgStyle, add a method to the component class.

•       In the following example, setCurrentStyles() sets the property currentStyles with an object that defines three styles, based on the state of three other component properties.

•       Method

•       currentStyles: Record<string, string> = {};

•       setCurrentStyles() {

•         // CSS styles: set per current state of component properties

•         this.currentStyles = {

•           'font-style':  this.canSave      ? 'italic' : 'normal',

•           'font-weight': !this.isUnchanged ? 'bold'   : 'normal',

•           'font-size':   this.isSpecial    ? '24px'   : '12px'  };}

•       Using Ngstyle <div [ngStyle]="currentStyles"> This div is initially italic, normal weight, and extra large (24px). </div>

 

 

Ngmodel => 2way property binding

•     Use the NgModel directive to display a data property and update that property when the user makes changes.

•     Define the property

•       @Input()  property1 ='test';

•     add the ngmodel directive

•     This will add two way binding

•     <input [(ngModel)]="property1" id="example-ngModel">

Ngswitch

•       The ngSwitch is an Angular directive, which allows us to display one or more DOM elements based on some pre-defined condition.

•       The following is the syntax of ngSwitch. It contains three separate directives. ngSwitch, ngSwitchCase & ngSwitchDefault.

•       An example switch ,this will basically be using num as property to store,and based on the correct value that you in put in input field,will be passed to the switch and finally the switchcase ,the corresponding “one” or “two”value will be shown in ui

•        Input string : <input type='text' [(ngModel)]="num" />

•        

•           <div [ngSwitch]="num">

•             <div *ngSwitchCase="'1'">One</div>

•             <div *ngSwitchCase="'2'">Two</div>

 

Custom Directive

•       Custom directive can be created by annotating a class a @Directive

•     Look at the appexample directive

•     Usage in html<button appExample defaultColor="red">Button</button>

•     Import { HostListener, Directive, ElementRef, Renderer2, Input, OnInit } from '@angular/core'

•    
@Directive({

•       selector: '[appExample]',

•     })

•     export class ExampleDirective implements OnInit {

•       @Input() defaultColor: string// This makes the defaultColor variable changeable 2way binding

 

•    


 

Adding events to custom directive

•       Using @HostListener annotation,more interactive logic can be added to the directive.  Decorator that declares a DOM event to listen for, and provides a handler method to run when that event occurs.

•       @HostListener('mouseenter') onMouseEnter() {

•           this.setBgColor('yellow')

•         }

•      
  @HostListener('mouseleave') onMouseLeave() {

•           this.setBgColor('white')

•         }

•     This annotation when added to the custom directive class ,will start listening to mouseevents and fire the corresponding method

Custom directive

•     Initially the custom directive will make the button appear red,

•     On mousenter it will become yellow ,then when mouse is moved out

•     The button background color will become white

 

Custom Directive command
ng generate directive example app

 


Angular tutorial part 1 Introduction -Templates,pipes,property binding standard events

Angular 
 Version 7
What all you will Learn
Angular Framework
Essentials of Angular
Templates
Styles
Directives
Services
Dependency injections
Forms- Template/Reactive
Routing
Http
Observables /Promises
Testing


Angular introduction
All told, Angular is an open-source front-end web application framework, primarily sustained by Google as well as an extended community of people and companies. 
It is fully extensible and also functions well with other libraries.
Companies that used Angular to build their websites include Google, PayPal, Nike, HBO, General Motors, Sony, The Guardian, and Upwork.

Benefits of Angular
Angular supports Model View Controlling architecture (MVC).
Ease of Integration
Support for Single Page Applications
Single Page Applications, or SPAs for short, can communicate with the back-end servers without having to refresh the full webpage for the purposes of loading data in the application
Angular Uses a Declarative User Interface
Angular Gives You Modularity
Cross-Platform Versatility – Works on Desktop,webApps and native mobile apps

Angular components
Components are the main building block for Angular applications. Each component consists of:
An HTML template that declares what renders on the page
A Typescript class that defines behavior
A CSS selector that defines how the component is used in a template
Optionally, CSS styles applied to the template

System requirements
Download node.js
Download visual studio code for Ide
Download Angular CLI ->npm install -g @angular/cli

Creating your first component
ng n component component name
Folder structure of angular app

A folder named after the component
A component file, <component-name>.component.ts
A template file, <component-name>.component.html
A CSS file, <component-name>.component.css
A testing specification file, <component-name>.component.spec.ts

Understanding the template
A template is a block of HTML that tells Angular how to render the component in your application. Define a template for your component in one of two ways: by referencing an external file, or directly within the component.
Template representing external file
@Component({
  selector: 'app-root',
  templateUrl: './app.component.html', 
  styleUrls: ['./app.component.css'],
})
Typically this kind html addition is used most of the time in major applications rather than inline html


Template representing inline html
@Component({
  selector: 'app-component-overview',
  template: '<h1>Hello World!</h1>',
})
Multiple lines html requires backtick
@Component({
  selector: 'app-component-overview',
  template: `
    <h1>Hello World!</h1>
    <p>This template definition spans multiple lines.</p>
  `
})
Adding Style CSS to component
Your component will use the styleurl property to add css
@Component({ selector: 'app-component-overview', templateUrl: './component-overview.component.html', styleUrls: ['./component-overview.component.css'] })

You can also add inline css using styles property
styles: ['h1 { font-weight: normal; }'

Creating your first angular component

Create new api with cli
Open localhost and check app
Go through folders
Check out template property
Change html to inline html

Property Binding

Properties are variables of the component class.There can be one way binding or two way binding of properties.i.

Property binding in Angular helps you set values for properties of HTML elements or directives. Setting an element property to a component property value.
Example <img [src]="itemImageUrl"> 
itemImageUrl = '../assets/phone.png';
The brackets, [], cause Angular to evaluate the right-hand side of the assignment as a dynamic expression. Without the brackets, Angular treats the right-hand side as a string literal and sets the property to that static value.

Property Binding
Toggling button functionality
To disable a button's functionality depending on a Boolean value, bind the DOM disabled property to a property in the class that is true or false.
Component template
src/app/app.component.html
content_copy
<!-- Bind button disabled state to `isUnchanged` property -->
<button [disabled]="isUnchanged">Disabled Button</button>
Because the value of the property isUnchanged is true in the AppComponent, Angular disables the button.
Component code
src/app/app.component.ts
content_copy
isUnchanged = true;
Attribute, class, and style bindings
Attribute binding in Angular helps you set values for template attributes directly.
Attribute binding syntax resembles property binding, but instead of an element property between brackets, you precede the name of the attribute with the prefix attr, followed by a dot. Then, you set the attribute value with an expression that resolves to a string.
<p [attr.attribute-you-are-targeting]="expression"></p>
<button [attr.aria-label]="actionName">{{actionName}} with Aria</button>
<tr><td [attr.colspan]="1 + 1">One-Two</td></tr>
<nav [style.background-color]="expression"></nav>
Multiple styles
[style]="styleExpression“ , "width: 100px; height: 100px"
Event Binding in Angular
Event binding lets you listen for and respond to user actions such as keystrokes, mouse movements, clicks, and touches.
<button (click)="onSave()">Save</button>
onSave method

Standard events 1
// Full list of Angular Events

(click)="myFunction()"      
(dblclick)="myFunction()"
(submit)="myFunction()"
(blur)="myFunction()"  
(focus)="myFunction()" 
(scroll)="myFunction()"
(cut)="myFunction()"
(dragover)="myFunction()"
Standard events2
(copy)="myFunction()"
(paste)="myFunction()"
(keyup)="myFunction()"
(keypress)="myFunction()"
(keydown)="myFunction()"
(mouseup)="myFunction()"
(mousedown)="myFunction()"
(mouseenter)="myFunction()"
(drag)="myFunction()"
(drop)="myFunction()"
Two way Binding
Two-way binding gives components in your application a way to share data. Use two-way binding to listen for events and update values simultaneously between parent and child components.
Angular's two-way binding syntax is a combination of square brackets and parentheses, [()]. The [()] syntax combines the brackets of property binding, [], with the parentheses of event binding, (), as follows.
The following sizerComponent has a size value property and  a sizeChange event. The size property is an @Input(), so data can flow into the sizerComponent. The sizeChange event is an @Output(), which lets data flow out of the sizerComponent to the parent component.
@Input
• Allows data to flow from a parent component to a child
Component,also from UI to class.
• Defined inside a component via the @Input decorator:
@Input() someValue: string;
• Bind in parent template: <component
[someValue]="value"></component>
•We can alias inputs: @Input('alias') someValue: string;
@Output
Exposes an EventEmitter property that emits events to
the parent component
• Defined inside a component via the @Output decorator:
@Output() showValue: new EventEmitter<boolean>;
• Bind in parent template: <cmp
(someValue)="handleValue()"></cmp>
@input and @output Decorators
@Input allows data to be accepted by the property
@Output ,data flows out from that property,here we are using it to create a custom event using Eventemitter class,earlier we had seen
   standard events as click,blur etc.
<label [style.font-size.px]="size">FontSize: {{size}}px</label>
Code in next page
 
.Component.ts  two way binding
export class SubAppComponent implements OnInit {
  constructor() { }
  @Input()  size: number =9;  // This @Input makes this size property accept values  dec() { this.resize(-1); }
  inc() { this.resize(+1); }
  resize(delta: number) {
    this.size = Math.min(40, Math.max(8, +this.size + delta));
    this.sizeChange.emit(this.size);
  }
  ngOnInit() {
  }
So now when we increment or decrement the method,the size value is changed  in both the UI and in the class

Summary of event and property bindings
Template variables -refs

Template variables help you use data from one part of a template in another part of the template. 
It also allows you to access input tags values using refs
In the template, you use the hash symbol, #, to declare a template variable
Use template variables to perform tasks such as respond to user input or finely tune your applicat
A template variable can refer to the following:
a DOM element within a template
a directive
an element
TemplateRef
Refs – Tempate variables
<input #phone placeholder="phone number" /> 
<button (click)="callPhone(phone.value)">Call</button>
Conceptually similary to divid and document.getelementbyid.value
In the above ,the phone # tag can be used to refer the template
 values
We will revisit refs frequently in the topics  of NG forms or directives
Template statements
Template statements are methods or properties that you can use in your HTML to respond to user events. 
With template statements, your application can engage users through actions such as displaying dynamic content or submitting forms.
Example
<button (click)="deleteHero()">Delete hero</button>
The button is calling a method deleteHero

Template expression - Pipes
Angular provides built-in pipes for typical data transformations

DatePipe: Formats a date value according to locale rules.
UpperCasePipe: Transforms text to all upper case.
LowerCasePipe: Transforms text to all lower case.
CurrencyPipe: Transforms a number to a currency string, formatted according to locale rules.
DecimalPipe: Transforms a number into a string with a decimal point, formatted according to locale rules.
PercentPipe: Transforms a number to a percentage string, formatted according to locale rules.
Pipes formatting
<p>The hero's birthday is {{ birthday | date }}</p>
<p>The hero's birthday is {{ birthday | date:"MM/dd/yy" }} </p>
Example demo
Two pipes
The chained hero's birthday is {{ birthday | date | uppercase}}


Lab demo of all concepts covered ->
  <a href="https://www.tutorialspoint.com/learn-angular-and-react-in-one-place/index.asp">Learn Angular And React In One Place
</a>
  

Wednesday, March 9, 2022

Java developer jobs 10 march

Hiring For Java Developers - Atos
  • 3-8 Yrs
  • 5,00,000 - 15,00,000 PA.
  • Pune, Chennai, Bangalore/Bengaluru, Mumbai (All Areas)
company
Good problem solving skillsExperience with JDBC, SQL, relational database developmentEx...
  • REST
  • Hibernate
  • Struts
  • communication
  • Micro services
  • JDBC
  • Spring
  • SOAP
PREFERRED
1 Day Ago
save
Java Developer
  • 3-7 Yrs
  • Not disclosed
  • Pune, Delhi / NCR, Mumbai (All Areas)
Relevant Experience Range: 3 - 7 YearsLocation - PAN IndiaRequired Technical Skill Set ...
  • spring boot
  • java ee
  • oracle
  • sql queries
  • jboss
  • tomcat
  • web technologies
  • j2ee
HOT JOB
1 Day Ago
save

Filter Jobs byTop Companies

Accenture

815 Jobs

IBM India

378 Jobs

SAP Labs

230 Jobs

Dell International

157 Jobs

Java Developer
  • 0-2 Yrs
  • Not disclosed
  • Kochi/Cochin, Palghat/Palakkad, Bangalore/Bengaluru
Must have knowledge of the full software development life cycle processMust be enthusia...
  • Object - Oriented Analysis and
  • Agile
  • Scrum
  • communication
  • software development life cycle
  • Java
  • IT Skills
  • Software Development
1 Day Ago
save
Senior Salesforce Commerce Cloud Developer - Java/J2EE
  • 10-15 Yrs
  • Not disclosed
  • Kolkata, Mumbai, Hyderabad/Secunderabad, Kanpur, Pune, Ahmedabad, Chennai, Delhi / NCR, Bangalore/Bengaluru
Requirements : - Total 5+ years of experience and minimum 2-3 years of hands-on softwar...
  • Java
  • J2EE
  • Salesforce Commerce Cloud
  • IT Skills
  • Software Development
  • Testing
  • Cloud
  • Performance Testing
HOT JOB
6 Days Ago
save

Filter Jobs bySalary

0-3 Lakhs

11392 Jobs

3-6 Lakhs

46919 Jobs

6-10 Lakhs

61575 Jobs

10-15 Lakhs

35035 Jobs

Java Developer
  • 5-9 Yrs
  • Not disclosed
  • Bangalore/Bengaluru(WFH during Covid)
Only 30Days joinersExp: 5-9YrsLocation Bangalore
  • java
  • Angular
  • azure
  • Springboot Java
  • Vue.Js
  • Hibernate
  • Front End
  • Javascript
HOT JOB
1 Day Ago
save
Senior Java Developer/Immediately Available
  • 4-8 Yrs
  • Not disclosed
  • Hyderabad/Secunderabad, Pune, Gurgaon/Gurugram, Bangalore/Bengaluru(WFH during Covid)
Work as a member of development team;Estimating efforts and duration on development;Wor...
  • Core Java
  • Spring Boot
  • Microservices
  • Maven
  • Rest
  • Cloud Computing
  • JUnit
  • JDBC
PREFERRED
2 Days Ago
save

Filter Jobs byLocation

Remote

1109 Jobs

Bangalore/Bengaluru

27724 Jobs

Delhi / NCR

15662 Jobs

Hyderabad/Secunderabad

12456 Jobs

Senior Java Developer
  • 2-6 Yrs
  • Not disclosed
  • Bangalore/Bengaluru(WFH during Covid)
Hashedin by DeloittePOSITION Sr. Java DeveloperLOCATION Bangalore, IndiaORGANIZATION OV...
  • spring boot
  • core java
  • microservices
  • IT Skills
  • Java
  • J2EE
  • Python
  • Software Development
HOT JOB
1 Day Ago
save
Tech Mahindra is Hiring Java Developer
  • 4-9 Yrs
  • 6,00,000 - 16,00,000 PA.
  • Mumbai, Hyderabad/Secunderabad, Pune, Bangalore/Bengaluru, Mumbai (All Areas)(WFH during Covid)
Must have worked in large enterprise environments and exposed to complex systemsMust ha...
  • REST API
  • unit testing
  • REST
  • OOPS
  • KAFKA
  • Spring 4+
  • microservices
  • NO SQL
PREFERRED
1 Day Ago
save
Java Developer
  • 3-5 Yrs
  • Not disclosed
  • Hyderabad/Secunderabad
As a Java Developer, you will have a strong knowledge Java, J2EE, Struts. Good developm...
  • JSP's
  • OOPS
  • debugging
  • Util
  • Tomcat 7
  • java script
  • multi - threading
  • API's
PREFERRED
1 Day Ago
save
Java Developer | 4 To 6 years | Mumbai & Pune
  • 4-6 Yrs
  • Not disclosed
  • Noida, Hyderabad/Secunderabad, Pune, Gurgaon/Gurugram, Bangalore/Bengaluru, Mumbai (All Areas)
Strong hands-on programming experience in Java and Javascript applications.Strong devel...
  • java
  • javascript
  • RDBMS
  • Hibernate
  • troubleshooting
  • communication
  • analytical
  • HTML
HOT JOB
1 Day Ago
save