SlideShare a Scribd company logo
ANGULAR JS
Getting Started Guide
Agenda
•

Welcome To Angular	


•

Traditional “Hello World” Example	


•

Angular Concepts	


•

Filters	


•

Directives	


•

Multiple Views and Routes
Meet Angular

•

Started on 2009 by google
engineers Miško Hevery
and Brad Green	


•

Complete client-side
solution for SPA
Reasons To Use Angular
•

Technological and methodological solution to SPA	


•

Best practices out-of-the-box	


•

Active community effort
Reasons To Reconsider

•

Still no big apps written in angular	


•

Adapting existing code takes work
A Traditional Hello World

•

Demo: A first angular program	


•

Code: 

http://jsbin.com/UkIhono/1/edit?html,js,output
What We Learned
•

An angular app has a root DOM node, marked by
ng-app
<html ng-app="MyApp">
What We Learned
•

We can use {{ … }} to inject JavaScript data into
our DOM	


•

Values are searched in the active scope
<div ng-controller="Hello">
<h1>{{text}}</h1>
</div>
What We Learned
•

Controllers are JS objects	


•

They are used to assign values to the active scope
<div ng-controller="Hello">
<h1>{{text}}</h1>
</div>
What We Learned
•

Some HTML elements got special attributes called
directives. 	


•

We met: ng-app, ng-controller	


•

Directives tell angular how to process the page
What We Learned
•

We registered a controller factory using a special
angular function. 	


•

Angular later creates the controller instance
myApp.controller('Hello', ['$scope', function($scope) {
$scope.text = 'Welcome To Angular';
}]);
What We Learned

•

When registering a controller, we also tell angular
what services it needs	


•

In our example, we asked for $scope
Angular MVC
Data (Model)

DOM (View)

'Welcome To
Angular'

<h1>Welcome To
Angular</h1>

Controller
JS Code
Q&A
Lab
•

Implement an Angular app displaying:	

•
•

3 Input box for quantities	


•

1 push button titled “Calculate total”	


•
•

3 product name	


1 result input bux	


Display quantity values stored in JS code
Angular Concepts
•

Client side templates	


•

MVC architecture	


•

Data binding	


•

State and transitions	


•

Object lifecycle
Client Side Templates
<h1>{{text}}</h1>

+
$scope.text = 'Welcome To Angular';

<h1>Welcome To Angular</h1>
Client Side Templates

•

No need to access server for rendering	


•

Decouple view from JS code
Data Binding (before angular)
var newValue = 'bob is happy';
$('input').val(newValue);

<input />
$('input').on('input', function() {
self.value = $(this).val();
});
Data Binding (before angular)

•

JS code is coupled with HTML	


•

Too much code
Data Binding (with angular)
$scope.tagline = 'Bob is happy today';

<input />
function get_tagline() {
return $scope.tagline;
}
Data Binding (with angular)

•

Decouple JS code from HTML	


•

Less code
Q&A
Data Binding
Bind Event Handlers
•

Angular assigns event handler from HTML using
directives	


•

Example: Add functionality to calculate_total()
button from previous lab
Bind Event Handlers
•

But: There’s a bug …	


•

Data is not updated back (from DOM to JS)	


•

Let’s solve using angular
DOM -> JS

<input type="text" ng-model="hats.units" />
ng-model

•

Binds input value to a $scope property	


•

When either changes, update the other one
Other Available Bindings

•

ng-bind: binds text contents of an element	


•

ng-bind-html: binds innerHTML of an element
Demo

•

Let’s write a small angular app with 3 text areas	


•

Text in all 3 textareas should always be the same
Q&A
Lab
•

Fix previous lab so button will calculate the
correct items quantity	


•

Add a price to every item, and display price as
well
Angular Filters
Currency Problem
•

Normal numbers can have strange values	


•

8613871$	


•

2387.182617187351$	


•

That’s hard to read as a currency
Currency Problem

•

What would you do ?
Currency Problem

•

We could try to write a to_currency() function	


•

Use it every time we assign a value
Currency Problem
•

Or, we could just say …

<span class="price">{{ price | currency }}</span>
Angular Filters
•

A pipe in an expression tells angular to run it
through a filter before displaying	


•

A filter is just a function taking input and returning
an output (can also take parameters)
Angular Filters
•

What you get:	

•

Clear display code	


•

General reusable functions
Built-In Filters
•

json	


•

date	


•

limitTo	


•

orderBy	


•

lowecase	


•

uppercase	


•

number

<span class=“price">
{{ price | currency }}
</span>
!
<span class=“name">
{{ firstname | uppercase }}
</span>
!
<span class=“date">
{{1288323623006 | date:’medium'}}
</span>
Custom Filters
1. app.filter('longest', function() {
2.   return function(input) {
3.  
4.     if ( input.length == 0 ) return '';
5.  
6.     var result = input[0];
7.     for ( var i=1; i < input.length; i++ ) {
8.       if ( input[i].length > result.length ) result = input[i];
9.     }
10.   return result;
11. }
12.});
Q&A
Directives
<button ng-click="count = count + 1"
ng-init="count=0">
  Increment
</button>
!

count: {{count}}
Angular Directives

•

A directive “tells” angular compiler what to do
with the node
Using Directives
<!-- 1: as an attribute declaration -->
<a custom-button>Click me</a>
 
<!-- 2: as a custom element -->
<custom-button>Click me</custom-button>
 
<!-- 3: as a class (used for old IE compat) -->
<a class="custom-button">Click me</a>
 
<!-- 4: as a comment -->
<!-- directive: custom-button -->
Let’s start with ng-repeat
•

Takes an array of values	


•

Repeats an element for each item in the array	


•

Useful for writing lists
Let’s start with ng-repeat
<ul>
  <li ng-repeat="person in people”>
Name: {{person.name}}
</li>
</ul>
But there’s more
•

$index translates to the index of current iteration	


•

$first is true on the first iteration	


•

$last it true on the last iteration	


•

$middle is true in the middle	


•

$even and $odd are true on even and odd 

iterations respectably
Repeat + Filters = Win

I have {{friends.length}} friends. They are:
<input type="search" ng-model="q" placeholder="filter friends..." />

!

<ul class="example-animate-container">
  <li class="animate-repeat" ng-repeat="friend in friends | filter:q">
    [{{$index + 1}}] {{friend.name}} who is {{friend.age}} years old.
  </li>
</ul>

http://docs.angularjs.org/api/ng.directive:ngRepeat
Other Directives
•

Directive Categories:	

•

Handling events	


•

Flow control in DOM creation	


•

Specific solutions	


•

Custom directives
Event Handlers
ng-click

ng-copy

ng-mousedown

ng-change

ng-paste

ng-mouseup

ng-blur

ng-cut

ng-keypress

ng-focus

hg-submit

ng-mouseover

ng-dblclick

ng-mouseenter
Conditional DOM
•

ng-if	


•

ng-switch	


•

ng-hide	


•

ng-show	


•

ng-readonly	


•

ng-repeat

<button ng-click="count = count + 1"
       ng-init="count = 0">Clicks: {{count}}
</button>
   
<p ng-hide="count%3 == 0">{{ welcome_text }}</p>
Other Directives
•

ng-class	


•

ng-cloak	


•

ng-href	


•

ng-src	


•

ng-style
Q&A
Lab
•

Modify our previous Shopping Cart page to allow
flexible products	

•

Controller should keep a list of products	


•

Page should display products from the list
Routes and Views
Products
List Page

Shopping
Cart Page

viewport

Item Details
Page
Routes and Views
Products
List Page

viewport

Shopping
Cart Page

Item Details
Page

Angular Router renders a
template into the viewport
Routes and Views
/products
Products
List Page

viewport

/cart
Shopping
Cart Page

/item/72
Item Details
Page

Angular Router renders a
template into the viewport
Router Demo
myApp.config(['$routeProvider', '$locationProvider',
function($routes, $location) {
  $routes.
    when('/', {
      templateUrl: '/app/src/views/list.html',
      controller: 'ProductsList'
    })
    .when('/item/:id', {
      templateUrl: '/app/src/views/details.html',
      controller: 'ProductDetails'
    })
    .otherwise({
      redirectTo: '/'
    });
 
  $location.html5Mode(true);
}]);
Router Notes

•

html5Mode controls whether to use #	


•

Beware of relative paths
Router Events
•

When using a router, you get the following events
on the $rootScope	

•

$routeChangeSuccess	


•

$routeChangeError
Handling Route Events
•

Following code shows an alert after each page transition	


•

Can use from any Controller
$scope.$on('$routeChangeSuccess', function() {
  alert('wow');
});
Demo
•

Write a message list two pages application	


•

Page 1: list all messages	


•

Page 2: message details (on specific message)	


•

Clicking a message leads to page 2
Q&A
Lab

•

Add Breadcrumbs controller to the example	


•

Should create a list of past visited pages (names +
links)
Client Server
Communication
Getting data from server	

!

Using RESTful resources
The Basics

•

$httpProvider is a wrapper around XHR	


•

It uses promises for its API magic
Given The User List Code
<div ng-controller="users">

<ul>

<li ng-repeat="u in users">

<a>{{u.name}}</a>

</li>

</ul>

</div>
app.controller('users', ['$scope', function($scope) {

$scope.users = [

{ name: 'bob' },

{ name: 'john' },

{ name: 'brad' }

];

}]);

Getting Data From Server

app.controller('users', ['$scope', '$http', function($scope, $http) {

$http.get('/users.json')

.success(function(data, status) {

$scope.users = data;

});

}]);
$http API
•

$http(config)	


•

$http.get(url, config)	


•

$http.post(url, data, config)	


•

$http.put(url, data, config)	


•

$http.delete(url, config)
$http config
$http({

method: 'GET',

url: '/users.json',

params: { sort: 'asc' },

headers: { 'my-header' : 'header-value' },

cache: true,

timeout: 3000 // milliseconds

});

Other Chaining Operations

•

.success(function(data, status, headers, config) { } )	


•

.error(function(data, status, headers, config) { } )
$http

•

Low level wrapper around XHR	


•

Simple to use and understand
Demo
•

Let’s use $http to communicate with REST API	


•

Display a list of colours	


•

Clicking a colour -> Delete	


•

Provide a form to add a new colour
Meet ngResource
$save

POST /colors

$delete

DELETE /colors/7

$query

GET /colors

$get

GET /colors/7

Color
Using ngResource

var app = angular.module('MyApp', ['ngResource']);
Using ngResource






app.controller('users', ['$scope', '$resource', function($scope, $resource) {




var Color = $resource('/colors/:id');




$scope.colors = Color.query();




}]);

Using ngResource




app.controller('users', ['$scope', '$resource', function($scope, $resource) {




$scope.remove = function(id) {
$scope.colors[id].$remove({id: id}, function() {

$scope.colors.splice(id, 1);

});




};




}]);

ngResource

•

High level API for communicating with REST APIs	


•

Cleaner and less callbacks
Q&A
Angular + jQM
!

Introducing angular-jqm	

!

Concepts	

!

Demos	

!
Meet angular-jqm
•

Native angular directives for JQM	


•

Github:

https://github.com/angular-widgets/angular-jqm	


•

Docs:

http://angular-widgets.github.io/angular-jqm/master/
docs/#/api
Concepts
•

jQM turns normal HTML to mobile-friendly
markup	


•

angular-jqm is a full reimplementation of the
transformation (without jQuery or jQM
dependencies)	


•

Uses same CSS
Concepts
<div data-role="header">

<h1>Page Title</h1>

</div>

<div jqm-header>

<h1>Welcome To ng-jqm</h1>

</div>

<div role="banner" class="ui-header ui-bar-a" data-role="header">

<h1 aria-level="1" role="heading" class="ui-title">Page Title</h1>

</div>

Advantages

•

Uses angular style	


•

No “dirty” hacks
Disadvantages

•

Need to reimplement entire transformation code	


•

(Still) Not feature-complete
angular-jqm boilerplate
<!DOCTYPE html>

<html >

<head>

<meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=no"/>




<link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.css" />

<script src="angular.js"></script>

<script src="angular-mobile.js"></script>

<script src="angular-jqm.js"></script>

<!-- include your application script files here -->

<script src="app.js"></script>

</head>




<body ng-app="app">






<div jqm-caching-view></div>

</body>





</html>
angular-jqm boilerplate
var mod = angular.module('app', ['jqm']);

mod.config(function($routeProvider) {

// A route for a single page

$routeProvider.when("/", {

redirectTo: "main.html"

});

// A route for all pages in one folder

$routeProvider.when("/:page", {

animation: 'page-slide',

templateUrl: function(params) {

return params.page;

}

});

});
Lab

•

Write an angular-jqm app to show a list of items
and quantities	


•

Clicking a list item increases its quantity
Q&A
Thanks For Listening
•

Ynon Perek	


•

ynon@ynonperek.com	


•

http://ynonperek.com
Photos From

•

http://placeit.net	


•

http://123rf.com

More Related Content

PDF
Ultimate Introduction To AngularJS
Jacopo Nardiello
 
PDF
Boost your angular app with web workers
Enrique Oriol Bermúdez
 
PPTX
AngularJs
syam kumar kk
 
PDF
Maciej Treder "Server-side rendering with Angular—be faster and more SEO, CDN...
Fwdays
 
PPTX
Angular js
Behind D Walls
 
PPTX
Angular2 and TypeScript
David Giard
 
PPTX
React Native: Introduction
InnerFood
 
PPTX
Angular js 1.0-fundamentals
Venkatesh Narayanan
 
Ultimate Introduction To AngularJS
Jacopo Nardiello
 
Boost your angular app with web workers
Enrique Oriol Bermúdez
 
AngularJs
syam kumar kk
 
Maciej Treder "Server-side rendering with Angular—be faster and more SEO, CDN...
Fwdays
 
Angular js
Behind D Walls
 
Angular2 and TypeScript
David Giard
 
React Native: Introduction
InnerFood
 
Angular js 1.0-fundamentals
Venkatesh Narayanan
 

What's hot (20)

PPTX
Testing C# and ASP.net using Ruby
Ben Hall
 
PDF
Angular - Improve Runtime performance 2019
Eliran Eliassy
 
PPTX
Introduction to angular with a simple but complete project
Jadson Santos
 
PDF
Angular server side rendering - Strategies & Technics
Eliran Eliassy
 
PPT
Dynamic Application Development by NodeJS ,AngularJS with OrientDB
Apaichon Punopas
 
PDF
AtlasCamp 2015: Web technologies you should be using now
Atlassian
 
PDF
Introduction to React Native Workshop
Ignacio Martín
 
PDF
Ngrx meta reducers
Eliran Eliassy
 
PDF
React Native Workshop - React Alicante
Ignacio Martín
 
PPTX
Angularjs Basics
Anuradha Bandara
 
PPTX
Angular2 for Beginners
Oswald Campesato
 
PDF
Angular - injection tokens & Custom libraries
Eliran Eliassy
 
PPTX
Angular JS - Introduction
Sagar Acharya
 
PPTX
React native introduction
InnerFood
 
PDF
243329387 angular-docs
Abhi166803
 
PPT
A journey beyond the page object pattern
RiverGlide
 
PDF
AngularJS best-practices
Henry Tao
 
PDF
AtlasCamp 2015: Connect everywhere - Cloud and Server
Atlassian
 
PDF
AngularJS Project Setup step-by- step guide - RapidValue Solutions
RapidValue
 
PDF
React Native - Workshop
Fellipe Chagas
 
Testing C# and ASP.net using Ruby
Ben Hall
 
Angular - Improve Runtime performance 2019
Eliran Eliassy
 
Introduction to angular with a simple but complete project
Jadson Santos
 
Angular server side rendering - Strategies & Technics
Eliran Eliassy
 
Dynamic Application Development by NodeJS ,AngularJS with OrientDB
Apaichon Punopas
 
AtlasCamp 2015: Web technologies you should be using now
Atlassian
 
Introduction to React Native Workshop
Ignacio Martín
 
Ngrx meta reducers
Eliran Eliassy
 
React Native Workshop - React Alicante
Ignacio Martín
 
Angularjs Basics
Anuradha Bandara
 
Angular2 for Beginners
Oswald Campesato
 
Angular - injection tokens & Custom libraries
Eliran Eliassy
 
Angular JS - Introduction
Sagar Acharya
 
React native introduction
InnerFood
 
243329387 angular-docs
Abhi166803
 
A journey beyond the page object pattern
RiverGlide
 
AngularJS best-practices
Henry Tao
 
AtlasCamp 2015: Connect everywhere - Cloud and Server
Atlassian
 
AngularJS Project Setup step-by- step guide - RapidValue Solutions
RapidValue
 
React Native - Workshop
Fellipe Chagas
 
Ad

Similar to Angularjs (20)

PDF
Workshop 12: AngularJS Parte I
Visual Engineering
 
PPTX
Angular workshop - Full Development Guide
Nitin Giri
 
PDF
AngularJS Basics
Ravi Mone
 
PPTX
ME vs WEB - AngularJS Fundamentals
Aviran Cohen
 
PDF
AngularJS Workshop
Gianluca Cacace
 
PPTX
Learning AngularJS - Complete coverage of AngularJS features and concepts
Suresh Patidar
 
PPTX
Angular Presentation
Adam Moore
 
PPTX
Angular js for Beginnners
Santosh Kumar Kar
 
PPTX
angularJs Workshop
Ran Wahle
 
PDF
AngularJS in practice
Eugene Fidelin
 
PPTX
AngularJS
Malin De Silva
 
PPTX
Getting Started with Angular JS
Akshay Mathur
 
PPTX
01 startoff angularjs
Erhwen Kuo
 
PDF
Introduction to AngularJS
Jussi Pohjolainen
 
PPT
Angular js
yogi_solanki
 
PPT
Angular js
Hritesh Saha
 
PPTX
Angular js 1.3 presentation for fed nov 2014
Sarah Hudson
 
PDF
AngularJS: an introduction
Luigi De Russis
 
PPTX
Angular js slides
Amr Abd El Latief
 
Workshop 12: AngularJS Parte I
Visual Engineering
 
Angular workshop - Full Development Guide
Nitin Giri
 
AngularJS Basics
Ravi Mone
 
ME vs WEB - AngularJS Fundamentals
Aviran Cohen
 
AngularJS Workshop
Gianluca Cacace
 
Learning AngularJS - Complete coverage of AngularJS features and concepts
Suresh Patidar
 
Angular Presentation
Adam Moore
 
Angular js for Beginnners
Santosh Kumar Kar
 
angularJs Workshop
Ran Wahle
 
AngularJS in practice
Eugene Fidelin
 
AngularJS
Malin De Silva
 
Getting Started with Angular JS
Akshay Mathur
 
01 startoff angularjs
Erhwen Kuo
 
Introduction to AngularJS
Jussi Pohjolainen
 
Angular js
yogi_solanki
 
Angular js
Hritesh Saha
 
Angular js 1.3 presentation for fed nov 2014
Sarah Hudson
 
AngularJS: an introduction
Luigi De Russis
 
Angular js slides
Amr Abd El Latief
 
Ad

More from Ynon Perek (20)

PDF
Regexp
Ynon Perek
 
PDF
Html5 intro
Ynon Perek
 
PDF
09 performance
Ynon Perek
 
PDF
Mobile Web Intro
Ynon Perek
 
PDF
Qt multi threads
Ynon Perek
 
PDF
Vimperl
Ynon Perek
 
PDF
Syllabus
Ynon Perek
 
PDF
Mobile Devices
Ynon Perek
 
PDF
Network
Ynon Perek
 
PDF
Architecture app
Ynon Perek
 
PDF
Cryptography
Ynon Perek
 
PDF
Unit Testing JavaScript Applications
Ynon Perek
 
PDF
How to write easy-to-test JavaScript
Ynon Perek
 
PDF
Introduction to Selenium and Ruby
Ynon Perek
 
PDF
Introduction To Web Application Testing
Ynon Perek
 
PDF
Accessibility
Ynon Perek
 
PDF
Js memory
Ynon Perek
 
PDF
Qt Design Patterns
Ynon Perek
 
PDF
Web Application Security
Ynon Perek
 
PDF
JavaScript DOM Manipulations
Ynon Perek
 
Regexp
Ynon Perek
 
Html5 intro
Ynon Perek
 
09 performance
Ynon Perek
 
Mobile Web Intro
Ynon Perek
 
Qt multi threads
Ynon Perek
 
Vimperl
Ynon Perek
 
Syllabus
Ynon Perek
 
Mobile Devices
Ynon Perek
 
Network
Ynon Perek
 
Architecture app
Ynon Perek
 
Cryptography
Ynon Perek
 
Unit Testing JavaScript Applications
Ynon Perek
 
How to write easy-to-test JavaScript
Ynon Perek
 
Introduction to Selenium and Ruby
Ynon Perek
 
Introduction To Web Application Testing
Ynon Perek
 
Accessibility
Ynon Perek
 
Js memory
Ynon Perek
 
Qt Design Patterns
Ynon Perek
 
Web Application Security
Ynon Perek
 
JavaScript DOM Manipulations
Ynon Perek
 

Recently uploaded (20)

PDF
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
 
PDF
madgavkar20181017ppt McKinsey Presentation.pdf
georgschmitzdoerner
 
PDF
Orbitly Pitch Deck|A Mission-Driven Platform for Side Project Collaboration (...
zz41354899
 
PDF
How-Cloud-Computing-Impacts-Businesses-in-2025-and-Beyond.pdf
Artjoker Software Development Company
 
PDF
agentic-ai-and-the-future-of-autonomous-systems.pdf
siddharthnetsavvies
 
PDF
Unlocking the Future- AI Agents Meet Oracle Database 23ai - AIOUG Yatra 2025.pdf
Sandesh Rao
 
PPTX
ChatGPT's Deck on The Enduring Legacy of Fax Machines
Greg Swan
 
PDF
Building High-Performance Oracle Teams: Strategic Staffing for Database Manag...
SMACT Works
 
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
AVTRON Technologies LLC
 
PDF
CIFDAQ's Teaching Thursday: Moving Averages Made Simple
CIFDAQ
 
PDF
A Day in the Life of Location Data - Turning Where into How.pdf
Precisely
 
PDF
Software Development Methodologies in 2025
KodekX
 
PPTX
How to Build a Scalable Micro-Investing Platform in 2025 - A Founder’s Guide ...
Third Rock Techkno
 
PDF
Test Bank, Solutions for Java How to Program, An Objects-Natural Approach, 12...
famaw19526
 
PDF
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Safe Software
 
PPTX
The Power of IoT Sensor Integration in Smart Infrastructure and Automation.pptx
Rejig Digital
 
PDF
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
PDF
Why Your AI & Cybersecurity Hiring Still Misses the Mark in 2025
Virtual Employee Pvt. Ltd.
 
PDF
Software Development Company | KodekX
KodekX
 
PDF
BLW VOCATIONAL TRAINING SUMMER INTERNSHIP REPORT
codernjn73
 
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
 
madgavkar20181017ppt McKinsey Presentation.pdf
georgschmitzdoerner
 
Orbitly Pitch Deck|A Mission-Driven Platform for Side Project Collaboration (...
zz41354899
 
How-Cloud-Computing-Impacts-Businesses-in-2025-and-Beyond.pdf
Artjoker Software Development Company
 
agentic-ai-and-the-future-of-autonomous-systems.pdf
siddharthnetsavvies
 
Unlocking the Future- AI Agents Meet Oracle Database 23ai - AIOUG Yatra 2025.pdf
Sandesh Rao
 
ChatGPT's Deck on The Enduring Legacy of Fax Machines
Greg Swan
 
Building High-Performance Oracle Teams: Strategic Staffing for Database Manag...
SMACT Works
 
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
AVTRON Technologies LLC
 
CIFDAQ's Teaching Thursday: Moving Averages Made Simple
CIFDAQ
 
A Day in the Life of Location Data - Turning Where into How.pdf
Precisely
 
Software Development Methodologies in 2025
KodekX
 
How to Build a Scalable Micro-Investing Platform in 2025 - A Founder’s Guide ...
Third Rock Techkno
 
Test Bank, Solutions for Java How to Program, An Objects-Natural Approach, 12...
famaw19526
 
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Safe Software
 
The Power of IoT Sensor Integration in Smart Infrastructure and Automation.pptx
Rejig Digital
 
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
Why Your AI & Cybersecurity Hiring Still Misses the Mark in 2025
Virtual Employee Pvt. Ltd.
 
Software Development Company | KodekX
KodekX
 
BLW VOCATIONAL TRAINING SUMMER INTERNSHIP REPORT
codernjn73
 

Angularjs