2016-11-20 4 views
4

Ich versuche, ein Array aus einer anderen Klasse zu bekommen, aber er sagt, dass die Funktion nicht existiert. hier ist mein Code:Angular 2: ist keine Funktion, aber es existiert

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"]; 
    } 
} 
+0

Das hängt wahrscheinlich auch davon ab, was er zu erreichen versucht. –

Antwort

4

Sie müssen das Argument Name verweisen, nicht die Argumenttyp

this.courses = courseService.getCourses(); 
       ^lower case c 
+0

Es gibt immer noch den gleichen Fehler: TypeError: CourseService.getCourses ist keine Funktion – Nick

+0

Was erhalten Sie für 'console.log (courseService);'? –

+0

wo sollte ich das vorbei? – Nick

1

Ich denke es ist eine Art Bug, weil TypeScript mir die Methode erkennt, aber wenn ich die Methode getCourses() in der Komponente wieder lösche und eintippe, heißt es, dass die Methode nicht gefunden wurde, dann gehe ich zum Service und beginne zu leere Zeilen löschen und die Methode funktioniert. Ich verwende derzeit Winkel 4

1

Ich hatte das gleiche unerklärliche Problem. Ich habe den Code aus dem Internet kopiert und eingefügt, und etwas muss in der Funktionsdeklaration nicht richtig gewesen sein. Ich löschte die Linie

getCourses(): string[] {

und tippte ihn wieder aus der Hand. Als ich den Code ausführte, funktionierte es. Vielleicht wurde ein unsichtbarer Charakter eingefügt und Typoskript durcheinander gebracht? Wer weiß.

Verwandte Themen