J'essaie d'obtenir un tableau d'une classe différente mais il dit que la fonction n'existe pas. Voici mon code:
courses.component.ts :
import {Component} from 'angular2/core'
import {CourseService} from './course.service'
@Component({
selector: 'courses',
template: `
<h2>Courses</h2>
{{ title }}
<ul>
<li *ngFor ="#course of courses">
{{course}}
</li>
</ul>
`,
providers: [CourseService]
})
export class CoursesComponent{
title = "The title of courses page";
courses;
constructor(courseService: CourseService){
this.courses = CourseService.getCourses();
}
}
course.service.ts :
export class CourseService{
getCourses() : string[]{
return ["Course1","Course2","Course3"];
}
}
Vous devez référencer le nom de l'argument, pas le type d'argument
this.courses = courseService.getCourses();
^ lower case c
Je pense que c'est une sorte de bogue, parce que TypeScript me reconnaît la méthode, mais lorsque je supprime et redéfinis la méthode getCourses () dans le composant, il indique que la méthode est introuvable, puis je vais au Service et commence à supprimer les blancs lignes, et la méthode fonctionne. J'utilise actuellement Angular 4
J'ai eu le même problème inexplicable. Je copie et colle le code à partir du Web et quelque chose ne doit pas avoir été correct dans la déclaration de fonction J'ai supprimé la ligne
getCourses(): string[] {
et tapé à nouveau à la main. Quand j'ai exécuté le code, cela a fonctionné. Peut-être qu'un caractère invisible a été collé dans et tapé Typescript? Qui sait.