diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts index 8a8cbc1..763ac23 100644 --- a/src/app/app-routing.module.ts +++ b/src/app/app-routing.module.ts @@ -3,10 +3,15 @@ import { Routes, RouterModule } from '@angular/router' import { RecipesComponent } from './recipes/recipes.component'; import { ShoppingListComponent } from './shopping-list/shopping-list.component'; +import { RecipeDetailComponent } from './recipes/recipe-detail/recipe-detail.component'; +import { RecipeStartComponent } from './recipes/recipe-start/recipe-start.component'; const appRoutes: Routes = [ { path: '', redirectTo: '/recipes', pathMatch: 'full' }, - { path: 'recipes' , component: RecipesComponent }, + { path: 'recipes' , component: RecipesComponent, children: [ + { path: '', component: RecipeStartComponent }, + { path: ':id', component: RecipeDetailComponent } + ] }, { path: 'shopping-list', component: ShoppingListComponent } ]; diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 59ba483..fc596b3 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -15,6 +15,7 @@ import { ShoppingEditComponent } from './shopping-list/shopping-edit/shopping-ed import { DropdownDirective } from './shared/dropdown.directive'; import { ShoppingListService } from './shopping-list/shopping-list.service'; import { AppRoutingModule } from './app-routing.module'; +import { RecipeStartComponent } from './recipes/recipe-start/recipe-start.component'; @NgModule({ @@ -27,7 +28,8 @@ import { AppRoutingModule } from './app-routing.module'; RecipeItemComponent, ShoppingListComponent, ShoppingEditComponent, - DropdownDirective + DropdownDirective, + RecipeStartComponent ], imports: [ BrowserModule, diff --git a/src/app/recipes/recipe-detail/recipe-detail.component.ts b/src/app/recipes/recipe-detail/recipe-detail.component.ts index 95606f3..23cdcea 100644 --- a/src/app/recipes/recipe-detail/recipe-detail.component.ts +++ b/src/app/recipes/recipe-detail/recipe-detail.component.ts @@ -1,6 +1,7 @@ -import { Component, OnInit, Input } from '@angular/core'; +import { Component, OnInit } from '@angular/core'; import { Recipe } from '../recipe.model'; import { RecipeService } from '../recipe.service'; +import { ActivatedRoute, Params } from '@angular/router'; @Component({ selector: 'app-recipe-detail', @@ -8,11 +9,19 @@ import { RecipeService } from '../recipe.service'; styleUrls: ['./recipe-detail.component.css'] }) export class RecipeDetailComponent implements OnInit { - @Input() recipe: Recipe; + recipe: Recipe; + id: number; - constructor(private recipeService: RecipeService) { } + constructor(private recipeService: RecipeService, + private route: ActivatedRoute) { } ngOnInit() { + this.route.params.subscribe( + (params: Params) => { + this.id = +params['id']; + this.recipe = this.recipeService.getRecipe(this.id); + } + ); } onAddToShoppingList() { diff --git a/src/app/recipes/recipe-list/recipe-item/recipe-item.component.html b/src/app/recipes/recipe-list/recipe-item/recipe-item.component.html index 551163a..db5d940 100644 --- a/src/app/recipes/recipe-list/recipe-item/recipe-item.component.html +++ b/src/app/recipes/recipe-list/recipe-item/recipe-item.component.html @@ -1,7 +1,8 @@ + [routerLink]="[index]" + routerLinkActive="active" + class="list-group-item clearfix">

{{ recipe.name }}

{{ recipe.description }}

diff --git a/src/app/recipes/recipe-list/recipe-item/recipe-item.component.ts b/src/app/recipes/recipe-list/recipe-item/recipe-item.component.ts index 8d7304e..9047c23 100644 --- a/src/app/recipes/recipe-list/recipe-item/recipe-item.component.ts +++ b/src/app/recipes/recipe-list/recipe-item/recipe-item.component.ts @@ -1,6 +1,5 @@ import { Component, OnInit, Input } from '@angular/core'; import { Recipe } from '../../recipe.model'; -import { RecipeService } from '../../recipe.service'; @Component({ selector: 'app-recipe-item', @@ -9,14 +8,8 @@ import { RecipeService } from '../../recipe.service'; }) export class RecipeItemComponent implements OnInit { @Input() recipe: Recipe; - - constructor(private recipeService: RecipeService) { } + @Input() index: number; ngOnInit() { } - - onSelected() { - this.recipeService.recipeSelected.emit(this.recipe); - } - } diff --git a/src/app/recipes/recipe-list/recipe-list.component.html b/src/app/recipes/recipe-list/recipe-list.component.html index 6136be7..ef855f6 100644 --- a/src/app/recipes/recipe-list/recipe-list.component.html +++ b/src/app/recipes/recipe-list/recipe-list.component.html @@ -7,8 +7,8 @@
+ [index]="i">
diff --git a/src/app/recipes/recipe-start/recipe-start.component.css b/src/app/recipes/recipe-start/recipe-start.component.css new file mode 100644 index 0000000..e69de29 diff --git a/src/app/recipes/recipe-start/recipe-start.component.html b/src/app/recipes/recipe-start/recipe-start.component.html new file mode 100644 index 0000000..d9a4da1 --- /dev/null +++ b/src/app/recipes/recipe-start/recipe-start.component.html @@ -0,0 +1 @@ +

Please select a recipe!

\ No newline at end of file diff --git a/src/app/recipes/recipe-start/recipe-start.component.ts b/src/app/recipes/recipe-start/recipe-start.component.ts new file mode 100644 index 0000000..2a8b316 --- /dev/null +++ b/src/app/recipes/recipe-start/recipe-start.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-recipe-start', + templateUrl: './recipe-start.component.html', + styleUrls: ['./recipe-start.component.css'] +}) +export class RecipeStartComponent implements OnInit { + + constructor() { } + + ngOnInit() { + } + +} diff --git a/src/app/recipes/recipe.service.ts b/src/app/recipes/recipe.service.ts index 69a9462..ee376af 100644 --- a/src/app/recipes/recipe.service.ts +++ b/src/app/recipes/recipe.service.ts @@ -34,6 +34,10 @@ export class RecipeService { return this.recipes.slice(); } + getRecipe(index: number) { + return this.recipes[index]; + } + addIngredientsToShoppingList(ingredients: Ingredient[]) { this.shoppingListService.addIngredients(ingredients); } diff --git a/src/app/recipes/recipes.component.html b/src/app/recipes/recipes.component.html index d7a2176..d6a0fae 100644 --- a/src/app/recipes/recipes.component.html +++ b/src/app/recipes/recipes.component.html @@ -3,11 +3,6 @@
- - -

Please select a Recipe!

-
+
\ No newline at end of file