2016-11-20 5 views
4

私は別のクラスから配列を取得しようとしていますが、関数は存在しないと言います。ここ は私のコードです:角2:関数ではありませんが存在します

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

うん、おそらく同様に、彼は達成しようとするものによって異なります。 –

答えて

4

あなたは、引数名を参照する必要はありません引数タイプ

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

それでも同じエラーが発生します:TypeError:courseService.getCoursesは関数ではありません – Nick

+0

'console.log(courseService); –

+0

どこを先にすればいいですか? – Nick

1

TypeScriptはメソッドを認識するので、バグだと思うのですが、コンポーネントのgetCourses()メソッドを削除してタイプすると、メソッドが見つからないと表示され、サービスに行き、空行を削除し、メソッドWorksを削除します。私は現在角4を使用しています

1

私は同じ不可解な問題を抱えていました。私はWebからコードをコピーして貼り付けていますが、何かが関数宣言の中にあってはいけません。私はライン

getCourses(): string[] {

を削除し、手で再びそれを入力しました。私がコードを実行したとき、それは働いた。たぶん、目に見えない文字が貼り付けられて、Typescriptを台無しにしていたのでしょうか?知るか。

関連する問題