add product detail & modify products c

This commit is contained in:
Raghu-Ch
2018-09-13 14:13:24 -04:00
parent 0e203675c5
commit d8d30747d0
9 changed files with 49 additions and 13 deletions

15
.vscode/launch.json vendored Normal file
View File

@@ -0,0 +1,15 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "chrome",
"request": "launch",
"name": "Launch Chrome against localhost",
"url": "http://localhost:4200",
"webRoot": "${workspaceFolder}"
}
]
}

View File

@@ -18,10 +18,12 @@ import { MatTooltipModule } from '@angular/material/tooltip';
import { PageNotFoundComponent } from './page-not-found/page-not-found.component'; import { PageNotFoundComponent } from './page-not-found/page-not-found.component';
import { HomeComponent } from './home/home.component'; import { HomeComponent } from './home/home.component';
import { ProductComponent } from './product/product.component'; import { ProductComponent } from './product/product.component';
import { ProductDetailComponent } from './product/product-detail.component';
const appRoutes: Routes = [ const appRoutes: Routes = [
{ path: 'home', component: HomeComponent }, { path: 'home', component: HomeComponent },
{ path: 'product', component: ProductComponent }, { path: 'product', component: ProductComponent },
{ path: 'product/:id', component: ProductDetailComponent },
{ path: '', redirectTo: 'home', pathMatch: 'full' }, { path: '', redirectTo: 'home', pathMatch: 'full' },
{ path: '**', component: PageNotFoundComponent } { path: '**', component: PageNotFoundComponent }
]; ];

View File

@@ -0,0 +1,4 @@
section {
width: 60%;
margin: 10px auto 0 auto;
}

View File

@@ -1,3 +1,3 @@
<p> <section>
product-detail works! <h3>{{currentProduct.productName}}</h3>
</p> </section>

View File

@@ -1,4 +1,7 @@
import { Component, OnInit } from '@angular/core'; import { Component, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { ProductService } from '../product/product.service';
@Component({ @Component({
selector: 'app-product-detail', selector: 'app-product-detail',
@@ -7,9 +10,20 @@ import { Component, OnInit } from '@angular/core';
}) })
export class ProductDetailComponent implements OnInit { export class ProductDetailComponent implements OnInit {
constructor() { } currentProduct = {};
constructor(private productService: ProductService, private route: ActivatedRoute) { }
ngOnInit() { ngOnInit() {
this.getProductDetails();
} }
getProductDetails(): void {
const id = this.route.snapshot.paramMap.get('id');
// console.log(id);
this.productService.getProduct(id).subscribe((res) => {
this.currentProduct = res;
console.log(this.currentProduct);
});
}
} }

View File

@@ -1,4 +1,5 @@
<section fxFlex=50 class="aligner"> <section fxFlex=50 class="aligner">
<mat-card *ngFor="let product of products" (click)="getProductById(product._id)"> <mat-card *ngFor="let product of products" [routerLink]="['/product', product._id]" routerLinkActive="router-link-active">
{{product.productName}}</mat-card> {{product.productName}}</mat-card>
</section> </section>

View File

@@ -1,5 +1,5 @@
import { Component, OnInit } from '@angular/core'; import { Component, OnInit } from '@angular/core';
import { RouterModule, Router } from '@angular/router'; import { Router } from '@angular/router';
import { ProductService } from '../product/product.service'; import { ProductService } from '../product/product.service';
import { Product } from './product'; import { Product } from './product';
@@ -24,8 +24,4 @@ export class ProductComponent implements OnInit {
}); });
} }
getProductById(id: string): void {
this.productService.getProduct(id).subscribe(res => console.log(res));
}
} }

View File

@@ -5,8 +5,10 @@ import { RouterModule } from '@angular/router';
import { MatTableModule } from '@angular/material/table'; import { MatTableModule } from '@angular/material/table';
import { MatCardModule } from '@angular/material/card'; import { MatCardModule } from '@angular/material/card';
import { MatButtonModule } from '@angular/material/button'; import { MatButtonModule } from '@angular/material/button';
import { MatDividerModule } from '@angular/material/divider';
import { MatGridListModule } from '@angular/material/grid-list';
import {ProductComponent} from '../product/product.component'; import { ProductComponent } from '../product/product.component';
import { ProductDetailComponent } from './product-detail.component'; import { ProductDetailComponent } from './product-detail.component';
@NgModule({ @NgModule({
@@ -15,7 +17,9 @@ import { ProductDetailComponent } from './product-detail.component';
RouterModule, RouterModule,
MatTableModule, MatTableModule,
MatCardModule, MatCardModule,
MatButtonModule MatButtonModule,
MatDividerModule,
MatGridListModule
], ],
declarations: [ declarations: [
ProductComponent, ProductComponent,

View File

@@ -20,7 +20,7 @@ export class ProductService {
getProduct(id: string): Observable<Product> { getProduct(id: string): Observable<Product> {
const url = `${this.__url}/products/${id}`; const url = `${this.__url}/products/${id}`;
console.log(url); // console.log(url);
return this.http.get<Product>(url); return this.http.get<Product>(url);
} }
} }