组件代码:
import { Component, OnInit } from '@angular/core';
import { RecipeService } from '../recipe.service';
import { Recipe } from '../recipe.model';
@Component({
selector: 'app-recipe-list',
templateUrl: './recipe-list.component.html'
})
export class RecipeListComponent implements OnInit {
recipes: Recipe[];
constructor(private recipeService: RecipeService) {
}
ngOnInit() {
this.recipes = this.recipeService.getRecipes();
}
}
服务:
import { Recipe } from './recipe.model';
import { EventEmitter } from '@angular/core';
export class RecipeService {
recipeSelect = new EventEmitter();
private recipes: Recipe[] = [
new Recipe('A Test Recipe', 'This is simply a test', 'https://upload.wikimedia.org/wikipedia/commons/1/15/Recipe_logo.jpeg'),
new Recipe('Another Test Recipe', 'This is simply a test', 'https://upload.wikimedia.org/wikipedia/commons/1/15/Recipe_logo.jpeg')];
getRecipes() {
this.recipes.slice();
}
}
答案 0 :(得分:0)
您需要通过getRecipes
函数返回配方
getRecipes(): Recipe[] {
return this.recipes.slice();
}
答案 1 :(得分:0)
getRecipes(): Recipe[] {
return [...this.recipes];
}
在您的示例中,您的服务函数在期望回收之前(this.items)不返回任何内容。
因此,您必须使用关键字return来实现这一目标。
此外,您正在使用slice返回本地收藏集的副本,这是个好主意,但出于可读性和潜在性能的考虑,我更喜欢spread operator。
出于性能原因,请参见此讨论:discussion
答案 2 :(得分:0)
Your Code
getRecipes() {
this.recipes.slice();
}
正确的代码 getRecipes(){
return this.recipes.slice();
}