Herramientas de usuario

Herramientas del sitio


wiki2:angular:basics

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
wiki2:angular:basics [2016/07/14 20:34]
alfred [Components]
wiki2:angular:basics [2020/05/09 09:25] (actual)
Línea 60: Línea 60:
   name: '​Windstorm'​   name: '​Windstorm'​
 }; };
 +</​code>​
 +
 +Una propiedad a la que se le asigna un array vacío:
 +<​code>​
 +missions: Mission[] = [];
 +</​code>​
 +
 +Convertir objeto a JSON: 
 +<​code>​
 +return JSON.stringify(this.model);​
 +</​code>​
 +==== Listas ====
 +Encontrar un elemento en una lista:
 +<code javascript>​
 +getHero(id: number) {
 +  return this.getHeroes()
 +             ​.then(heroes => heroes.find(hero => hero.id === id));
 +}
 +</​code>​
 +Recoger unos elementos concretos:
 +<code javascript>​
 + ​this.heroService.getHeroes()
 +      .then(heroes => this.heroes = heroes.slice(1,​ 5));
 </​code>​ </​code>​
 ===== Elements ===== ===== Elements =====
Línea 156: Línea 179:
   }   }
 `] `]
 +</​code>​
 +
 +También podemos hacerlo desde un fichero externo con:
 +<code javascript>​
 +styleUrls: ['​app/​dashboard.component.css'​]
 +</​code>​
 +
 +Para añadir los estilos globales de toda la app simplemente añadiremos el link al index.html:
 +<code html>
 +<link rel="​stylesheet"​ href="​styles.css">​
 </​code>​ </​code>​
  
Línea 332: Línea 365:
  
 AppComponent únicamente debería manejar la navegación. El objeto router es el encargado de gestionarla y es una combinación del ''​provideRouter'',​ directivas y configuración. AppComponent únicamente debería manejar la navegación. El objeto router es el encargado de gestionarla y es una combinación del ''​provideRouter'',​ directivas y configuración.
 +
 +Es necesario tener en el index.html:
 +<​code>​
 +<​head>​
 +  <base href="/">​
 +</​code>​
  
 Crearemos un fichero ''​app.routes.ts''​ donde añadiremos todas las rutas: Crearemos un fichero ''​app.routes.ts''​ donde añadiremos todas las rutas:
Línea 403: Línea 442:
   }   }
 ]; ];
 +</​code>​
 +O parametrizar una ruta (por ejemplo ''/​detail/​11''​):​
 +<​code>​
 +{
 +  path: '​detail/:​id',​
 +  component: HeroDetailComponent
 +},
 +</​code>​
 +Entonces tendremos que recoger el id dentro del componente donde se vaya a leer, para ello leemos de la url en el navegador:
 +<code javascript>​
 +import { Component, OnInit, OnDestroy } from '​@angular/​core';​
 +import { ActivatedRoute } from '​@angular/​router';​
 +import { Hero } from '​./​hero';​
 +import { HeroService } from '​./​hero.service';​
 +
 +@Component({
 +  selector: '​my-hero-detail',​
 +  templateUrl:​ '​app/​hero-detail.component.html',​
 +})
 +export class HeroDetailComponent implements OnInit, OnDestroy {
 +  hero: Hero;
 +  sub: any;
 +
 +  constructor(
 +    private heroService:​ HeroService,​
 +    private route: ActivatedRoute) {
 +  }
 +
 +  ngOnInit() {
 +    this.sub = this.route.params.subscribe(params => {
 +      let id = +params['​id'​];​ /* convert id to int */
 +      this.heroService.getHero(id)
 +        .then(hero => this.hero = hero);
 +    });
 +  }
 +
 +  ngOnDestroy() {
 +    this.sub.unsubscribe();​
 +  }
 +
 +  goBack() {
 +    window.history.back();​
 +  }
 +}
 </​code>​ </​code>​
  
 +  - Necesitamos un observer de la url, para ello accedemos a la ActivatedRoute
 +  - Nos aseguramos que nos subscrivimos a la ActivatedRoute en el ngOnInit y que en el ngOnDestroy nos desubscribimos.
 +  - Necesitamos agregarlo al constructor
 +  - En el ngOnInit nos subscribimos a los ''​params''​ para obtener la ''​id''​ de la ruta actual (ActivateRoute); ​ luego se usará el servicio para obtener ese id concreto.
 ==== Http ==== ==== Http ====
wiki2/angular/basics.1468528481.txt.gz · Última modificación: 2020/05/09 09:25 (editor externo)