programing

Angular2 서비스에 예기치 않은 값이 있습니다.주석을 추가하십시오.

megabox 2023. 7. 8. 10:48
반응형

Angular2 서비스에 예기치 않은 값이 있습니다.주석을 추가하십시오.

Angular2 app에서 다음 오류가 발생합니다. 오류: (시스템)JS) 'AppModule' 모듈에서 선언한 예기치 않은 값 'ReleasesService'입니다. @Pipe/@Directive/@Component 주석을 추가하십시오.

앱 모듈:

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { routing } from './app.routes';
import { HttpModule } from '@angular/http';
import { SearchFilter } from '../app/search-filter.pipe';
import { ReleasesService } from '../app/releases/releases.service';
import { AppComponent }  from './app.component';
import { HomeComponent } from '../app/home/home.component';
import { ReleasesComponent } from '../app/releases/releases.component';
import { DistroComponent } from '../app/distro/distro.component';
import { ContactComponent } from '../app/contact/contact.component';

@NgModule({
  imports:      [ BrowserModule, HttpModule, routing ],
  declarations: [ AppComponent, 
                  SearchFilter,
                  HomeComponent, 
                  ReleasesComponent, 
                  ReleasesService,
                  DistroComponent, 
                  ContactComponent  ],
  bootstrap:    [ AppComponent ]
})
export class AppModule { }

릴리스 서비스:

import { Injectable } from '@angular/core';
import { Http, Response } from '@angular/http';
import { Observable } from 'rxjs/Observable';
import { IRelease } from './release';
import 'rxjs/add/operator/map';

@Injectable()
export class ReleasesService {
  getReleases() {
    return IRelease;
  }
}

어떻게 고칠까요?Quickstarter(내 앱의 기반)를 다시 설치했는데 서비스를 만들 때 동일한 오류가 발생했습니다.

declarations선언 가능한 클래스에만 해당됩니다.구성 요소 지침 및 파이프

추가할 수 있습니다.ReleasesService로.providers배열

@NgModule({
  imports:      [ BrowserModule ],
  declarations: [ AppComponent ],
  providers:    [ ReleasesService ],
  bootstrap:    [ AppComponent ]
})
export class AppModule { }

참고 항목

저도 비슷한 문제가 있었는데, 프로젝트가 angular2를 의존성과 (불량 구성 요소와의) 프로젝트 의존성을 가지고 있는 동안 발생했습니다.Angular2 메타데이터가 직접 Angular2 종속성에 연결되는 것처럼 보여서 프로젝트 종속성의 구성 요소가 프로젝트의 Angular2에 선언되지 않았습니다.

해결 방법은 종속성에서 angular2를 제거하고(여기서는 devDependency로 선언) angular2 인스턴스를 하나만 사용하는 것입니다.

장식가가 @라는 캐릭터를 가지고 있는지 확인합니다.

데코레이터 함수 앞에 @를 입력하지 않으면 이 오류 메시지가 표시됩니다.

@Component({ selector: '...', }) -> Correct

Component({ selector: '...', }) -> ERROR MESAGE: 'add a @Pipe/@Directive/@component'

언급URL : https://stackoverflow.com/questions/43078640/angular2-unexpected-value-in-service-please-add-annotation

반응형