Hey trying to build website with products, but i can't get data from productsComponent to ProductDetailsComponent. Please help me.
In my Product.ts i have :
export class Product {
id: number;
name: string;
constructor(id: number, name: string) {
this.id = id;
this.name = name;
}
}
In my ProductsComponenet i have:
import { Component } from '@angular/core';
import { Product } from '../services.service';
@Component({
selector: 'app-services',
templateUrl: './services.component.html',
styleUrls: ['./services.component.css']
})
export class ServicesComponent {
public products: Product[] = [
new Product(1, "Product 001"),
new Product(2, "Product 002"),
new Product(3, "Product 003"),
new Product(4, "Product 004"),
new Product(5, "Product 005"),
new Product(6, "Product 006"),
new Product(7, "Product 007"),
new Product(8, "Product 008")
];
}
And in my ProductDetailComponent:
import {Component, OnInit} from '@angular/core';
import { ActivatedRoute} from '@angular/router';
import { Product } from '../services.service';
@Component({
selector: 'app-detail-service',
templateUrl: './detail-service.component.html',
styleUrls: ['./detail-service.component.css']
})
export class DetailServiceComponent implements OnInit {
public products: Product[] = [
new Product(1, "Product 001"),
new Product(2, "Product 002"),
new Product(3, "Product 003"),
new Product(4, "Product 004"),
new Product(5, "Product 005"),
new Product(6, "Product 006"),
new Product(7, "Product 007"),
new Product(8, "Product 008")
];
product: Product = this.products[0];
constructor(private routes: ActivatedRoute) {}
ngOnInit() {
this.routes.params.subscribe(params => {
this.products.forEach((p: Product) => {
if (p.id === params.id) {
this.product = p;
}
});
});
}
}
I show every products in products.html and after i click on any product it renders my productdetails.html with my product, but don't show proper name and id. IT shows first one in every product, but link is proper with id of the product. PLease help. I really can't figure out what is going on.