SlideShare a Scribd company logo
Angular 2 - Routing
Por Andrés Ciceri
Temas a tratar...
● Presentación.
● Angular 2 y su estructura.
● RouteConfig, Directivas & Params.
● Niveles & subniveles.
● Demo.
● Conclusiones & recomendaciones.
Quien soy?
HUGO ANDRES ESCOBAR CICERI
Ing. Telemático
U. ICESI
Cargo:
Full Stack Developer -> Frontend Developer
Empresa:
Instituto Humboldt - SIB Colombia -> Techno Apes
En Curso:
Maestría Ing. Software - Uniandes.
Contacto:
Mail : andresciceri@gmail.com
Github: andresciceri
Twitter: @Sibun_freak
Site : andresciceri.co (Coming Soon)
Angular 2
Angular 2 - Que nos ofrece...
Components
Views
Models
Services
Routers
Templates Styles Interfaces
Params Data
Directives Providers
Angular 2 - Definición Componente
import {Component, OnInit} from 'angular2/core';
import {Location, RouteConfig, RouterLink, Router,ROUTER_DIRECTIVES,ROUTER_PROVIDERS} from 'angular2/router';
import {HouseComponent} from './house.component';
@Component({
selector: 'serviceHome',
templateUrl: 'templates/service-home.html',
cssUrl: ['css/service.css'],
directives: [ROUTER_DIRECTIVES]
})
@RouteConfig([
{
path: '/',
name: 'House',
component: HouseComponent,
useAsDefault : true
}
])
export class ServiceFormComponent implements OnInit {
constructor(private _router: Router){}
ngOnInit(){ }
}
...Antes
Routing Angular 1
Angular 1 - Routing
Angular 1 - Routing
JS:
var app = angular
.module('myApp', [
'ngRoute'
]).config(function ($routeProvider) {
$routeProvider
.when('/', {
templateUrl: 'views/home.html',
controller: 'HomeCtrl',
controllerAs: 'home',
label: 'Inicio'
})
.when('/results/collections/:idCol', {
templateUrl: 'views/main.html',
controller: 'MainCtrl',
controllerAs: 'main',
label: 'Resultados'
})
}
HTML:
<!doctype html>
<html lang="en" ng-app="myApp">
<head>
...
<script src="bower_components/angular/angular.js"></script>
<script src="bower_components/angular-route/angular-route.js"
></script>
<script src="js/app.js"></script>
<script src="js/controllers.js"></script>
</head>
<body>
<div ng-view></div>
</body>
</html>
@RouteConfig
Angular Component Router
● Servicio adicional ( router.dev.js )
● <base href> : Método pushState.
● Directivas:
○ router-outlet
○ routerLink
● Definición del RouteConfig
Definición del @RouteConfig
import {Component} from 'angular2/core';
import {RouteConfig, ROUTER_DIRECTIVES} from 'angular2/router';
@Component({
...
})
@RouteConfig([
{
path: '/catalogo/...',
name: 'Catalogo',
component: CatalogoComponent,
useAsDefault: true,
data: { option : 3 }
},
{path: '/ventas', name: 'Ventas', component: VentasComponent},
{path: '/ventas/:id', name: 'VentaDetalle', component: VentaComponent},
{path: '/pagos', name: 'Pagos', redirectTo: ['Catalogo', 'Producto', {id:1}]}
])
Directivas del Router
Template:
<h1 class="title">Componente template</h1>
<nav>
<a [routerLink]="['Ventas']">Listado de Ventas</a>
<a [routerLink]="['/ventas',{id : 1}]">Venta Detalle</a>
<a [routerLink]="['/catalogo','Producto',{idProducto : 2}]">Producto Detalle</a>
</nav>
<router-outlet></router-outlet>
Params & Data
Importar componentes:
import {Router,RouteParams,ROUTER_PROVIDERS,ROUTER_DIRECTIVES,RouteData} from 'angular2/router';
Inyectar en el constructor:
export class ProductoComponent {
constructor(params : RouteParams, data: RouteData, private _router: Router){
if (data.get('search') !== null){
this.dataSearch = params.get('text');
} else if (data.get('supplier') !== null) {
this.dataSupplier = params.get('supplier');
} else {
this.category = params.get('category');
}
}
}
Niveles &
Subniveles
Niveles & Subniveles
‘/...’
‘/nivel1/...’
‘/item/:id’
‘/category/:id’
‘/profile/:id’
Demo...
Conclusiones
Velocidad en
desarrollo
Abstracción
Aislamiento
Organización y
legibilidad del
código
Experiencia
de usuario
@Gracias

More Related Content

What's hot (20)

PDF
The productive developer guide to Angular 2
Maurice De Beijer [MVP]
 
PDF
Dependency Injection pattern in Angular
Alexe Bogdan
 
DOCX
Angular2RoutingSetupByShubham
Shubham Verma
 
PDF
Angular routing
Sultan Ahmed
 
PDF
SocketIOSetupWithAngularJSAppByShubham
Shubham Verma
 
PPT
Angular 8
Sunil OS
 
PDF
Angular Dependency Injection
Nir Kaufman
 
PDF
AngularJS - dependency injection
Alexe Bogdan
 
PPTX
Angular 1.x in action now
GDG Odessa
 
PPTX
Routing And Navigation
Eyal Vardi
 
PDF
هیبرید کارا، از رویا تا واقعیت!
Web Standards School
 
PDF
The productive developer guide to Angular 2
Maurice De Beijer [MVP]
 
PPTX
Angular js 2
Ran Wahle
 
PPT
Elefrant [ng-Poznan]
Marcos Latorre
 
PDF
Angular js routing options
Nir Kaufman
 
PDF
Workshop 13: AngularJS Parte II
Visual Engineering
 
PPTX
Peggy angular 2 in meteor
LearningTech
 
PDF
Beyond AngularJS: Best practices and more
Ari Lerner
 
PDF
Express: A Jump-Start
Naveen Pete
 
PDF
Angular components
Sultan Ahmed
 
The productive developer guide to Angular 2
Maurice De Beijer [MVP]
 
Dependency Injection pattern in Angular
Alexe Bogdan
 
Angular2RoutingSetupByShubham
Shubham Verma
 
Angular routing
Sultan Ahmed
 
SocketIOSetupWithAngularJSAppByShubham
Shubham Verma
 
Angular 8
Sunil OS
 
Angular Dependency Injection
Nir Kaufman
 
AngularJS - dependency injection
Alexe Bogdan
 
Angular 1.x in action now
GDG Odessa
 
Routing And Navigation
Eyal Vardi
 
هیبرید کارا، از رویا تا واقعیت!
Web Standards School
 
The productive developer guide to Angular 2
Maurice De Beijer [MVP]
 
Angular js 2
Ran Wahle
 
Elefrant [ng-Poznan]
Marcos Latorre
 
Angular js routing options
Nir Kaufman
 
Workshop 13: AngularJS Parte II
Visual Engineering
 
Peggy angular 2 in meteor
LearningTech
 
Beyond AngularJS: Best practices and more
Ari Lerner
 
Express: A Jump-Start
Naveen Pete
 
Angular components
Sultan Ahmed
 

Similar to Angular 2 Routing (6)

PDF
Angular 2 release final
Andres Ciceri
 
PPTX
Angular 2
alinabiliashevych
 
PDF
The newst new Router for Angular 2 ("Version 3")
Manfred Steyer
 
PDF
Angular2
SitaPrajapati
 
PDF
ngconf2015
Anne Cypcar
 
PPTX
An afternoon with angular 2
Mike Melusky
 
Angular 2 release final
Andres Ciceri
 
The newst new Router for Angular 2 ("Version 3")
Manfred Steyer
 
Angular2
SitaPrajapati
 
ngconf2015
Anne Cypcar
 
An afternoon with angular 2
Mike Melusky
 
Ad

Recently uploaded (20)

PPTX
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pptx
Varsha Nayak
 
PPTX
Home Care Tools: Benefits, features and more
Third Rock Techkno
 
PPTX
Human Resources Information System (HRIS)
Amity University, Patna
 
PPTX
Agentic Automation Journey Session 1/5: Context Grounding and Autopilot for E...
klpathrudu
 
PDF
Unlock Efficiency with Insurance Policy Administration Systems
Insurance Tech Services
 
PPTX
ChiSquare Procedure in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PPTX
Help for Correlations in IBM SPSS Statistics.pptx
Version 1 Analytics
 
PPTX
Tally_Basic_Operations_Presentation.pptx
AditiBansal54083
 
PPTX
AEM User Group: India Chapter Kickoff Meeting
jennaf3
 
PDF
The 5 Reasons for IT Maintenance - Arna Softech
Arna Softech
 
PDF
MiniTool Partition Wizard 12.8 Crack License Key LATEST
hashhshs786
 
PDF
Odoo CRM vs Zoho CRM: Honest Comparison 2025
Odiware Technologies Private Limited
 
PPTX
Hardware(Central Processing Unit ) CU and ALU
RizwanaKalsoom2
 
PDF
Thread In Android-Mastering Concurrency for Responsive Apps.pdf
Nabin Dhakal
 
PPTX
Change Common Properties in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PDF
Linux Certificate of Completion - LabEx Certificate
VICTOR MAESTRE RAMIREZ
 
PDF
[Solution] Why Choose the VeryPDF DRM Protector Custom-Built Solution for You...
Lingwen1998
 
PDF
HiHelloHR – Simplify HR Operations for Modern Workplaces
HiHelloHR
 
PDF
SciPy 2025 - Packaging a Scientific Python Project
Henry Schreiner
 
PPTX
OpenChain @ OSS NA - In From the Cold: Open Source as Part of Mainstream Soft...
Shane Coughlan
 
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pptx
Varsha Nayak
 
Home Care Tools: Benefits, features and more
Third Rock Techkno
 
Human Resources Information System (HRIS)
Amity University, Patna
 
Agentic Automation Journey Session 1/5: Context Grounding and Autopilot for E...
klpathrudu
 
Unlock Efficiency with Insurance Policy Administration Systems
Insurance Tech Services
 
ChiSquare Procedure in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
Help for Correlations in IBM SPSS Statistics.pptx
Version 1 Analytics
 
Tally_Basic_Operations_Presentation.pptx
AditiBansal54083
 
AEM User Group: India Chapter Kickoff Meeting
jennaf3
 
The 5 Reasons for IT Maintenance - Arna Softech
Arna Softech
 
MiniTool Partition Wizard 12.8 Crack License Key LATEST
hashhshs786
 
Odoo CRM vs Zoho CRM: Honest Comparison 2025
Odiware Technologies Private Limited
 
Hardware(Central Processing Unit ) CU and ALU
RizwanaKalsoom2
 
Thread In Android-Mastering Concurrency for Responsive Apps.pdf
Nabin Dhakal
 
Change Common Properties in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
Linux Certificate of Completion - LabEx Certificate
VICTOR MAESTRE RAMIREZ
 
[Solution] Why Choose the VeryPDF DRM Protector Custom-Built Solution for You...
Lingwen1998
 
HiHelloHR – Simplify HR Operations for Modern Workplaces
HiHelloHR
 
SciPy 2025 - Packaging a Scientific Python Project
Henry Schreiner
 
OpenChain @ OSS NA - In From the Cold: Open Source as Part of Mainstream Soft...
Shane Coughlan
 
Ad

Angular 2 Routing

  • 1. Angular 2 - Routing Por Andrés Ciceri
  • 2. Temas a tratar... ● Presentación. ● Angular 2 y su estructura. ● RouteConfig, Directivas & Params. ● Niveles & subniveles. ● Demo. ● Conclusiones & recomendaciones.
  • 4. HUGO ANDRES ESCOBAR CICERI Ing. Telemático U. ICESI Cargo: Full Stack Developer -> Frontend Developer Empresa: Instituto Humboldt - SIB Colombia -> Techno Apes En Curso: Maestría Ing. Software - Uniandes. Contacto: Mail : [email protected] Github: andresciceri Twitter: @Sibun_freak Site : andresciceri.co (Coming Soon)
  • 6. Angular 2 - Que nos ofrece... Components Views Models Services Routers Templates Styles Interfaces Params Data Directives Providers
  • 7. Angular 2 - Definición Componente import {Component, OnInit} from 'angular2/core'; import {Location, RouteConfig, RouterLink, Router,ROUTER_DIRECTIVES,ROUTER_PROVIDERS} from 'angular2/router'; import {HouseComponent} from './house.component'; @Component({ selector: 'serviceHome', templateUrl: 'templates/service-home.html', cssUrl: ['css/service.css'], directives: [ROUTER_DIRECTIVES] }) @RouteConfig([ { path: '/', name: 'House', component: HouseComponent, useAsDefault : true } ]) export class ServiceFormComponent implements OnInit { constructor(private _router: Router){} ngOnInit(){ } }
  • 9. Angular 1 - Routing
  • 10. Angular 1 - Routing JS: var app = angular .module('myApp', [ 'ngRoute' ]).config(function ($routeProvider) { $routeProvider .when('/', { templateUrl: 'views/home.html', controller: 'HomeCtrl', controllerAs: 'home', label: 'Inicio' }) .when('/results/collections/:idCol', { templateUrl: 'views/main.html', controller: 'MainCtrl', controllerAs: 'main', label: 'Resultados' }) } HTML: <!doctype html> <html lang="en" ng-app="myApp"> <head> ... <script src="bower_components/angular/angular.js"></script> <script src="bower_components/angular-route/angular-route.js" ></script> <script src="js/app.js"></script> <script src="js/controllers.js"></script> </head> <body> <div ng-view></div> </body> </html>
  • 12. Angular Component Router ● Servicio adicional ( router.dev.js ) ● <base href> : Método pushState. ● Directivas: ○ router-outlet ○ routerLink ● Definición del RouteConfig
  • 13. Definición del @RouteConfig import {Component} from 'angular2/core'; import {RouteConfig, ROUTER_DIRECTIVES} from 'angular2/router'; @Component({ ... }) @RouteConfig([ { path: '/catalogo/...', name: 'Catalogo', component: CatalogoComponent, useAsDefault: true, data: { option : 3 } }, {path: '/ventas', name: 'Ventas', component: VentasComponent}, {path: '/ventas/:id', name: 'VentaDetalle', component: VentaComponent}, {path: '/pagos', name: 'Pagos', redirectTo: ['Catalogo', 'Producto', {id:1}]} ])
  • 14. Directivas del Router Template: <h1 class="title">Componente template</h1> <nav> <a [routerLink]="['Ventas']">Listado de Ventas</a> <a [routerLink]="['/ventas',{id : 1}]">Venta Detalle</a> <a [routerLink]="['/catalogo','Producto',{idProducto : 2}]">Producto Detalle</a> </nav> <router-outlet></router-outlet>
  • 15. Params & Data Importar componentes: import {Router,RouteParams,ROUTER_PROVIDERS,ROUTER_DIRECTIVES,RouteData} from 'angular2/router'; Inyectar en el constructor: export class ProductoComponent { constructor(params : RouteParams, data: RouteData, private _router: Router){ if (data.get('search') !== null){ this.dataSearch = params.get('text'); } else if (data.get('supplier') !== null) { this.dataSupplier = params.get('supplier'); } else { this.category = params.get('category'); } } }