'구독' 속성이 'void' 유형에 없습니다.Angular 2 asp.net 코어
구독을 사용하려고 하면 다음과 같은 오류가 발생합니다..map에도 같은 문제가 있었지만, 다음 파일 https://raw.githubusercontent.com/Microsoft/TypeScript/Fix8518/lib/typescriptServices.js 을 교체하는 것으로 해결했습니다.
Typescript를 1.8.6으로 업데이트하고 visual studio 2015를 3으로 업데이트했습니다.
이 문제를 해결하는 방법을 모르거나 잘못하고 있는 경우 추가했습니다.
import 'rxjs/Rx';
bootstrap 및 app.component 클래스에 연결되었지만 여전히 동일한 오류입니다.
서비스 코드:
import { Injectable } from 'angular2/core';
import {Http, URLSearchParams} from "angular2/http";
import 'rxjs/add/operator/map';
@Injectable()
export class MediaItemService {
constructor(public http: Http) {
this.http = http;
}
//functions
get() {
// return this.mediaItems;
this.http.get("/api/MediaItem").map(response => { response.json() });
}
}
서비스가 사용되는 클래스:
import {Component, Inject} from 'angular2/core';
import 'rxjs/Rx';
import {MediaItemComponent} from './media-item.component';
import {CategoryListPipe} from './category-list.pipe';
import {MediaItemService} from './media-item.service';
@Component({
selector: 'media-item-list',
directives: [MediaItemComponent],
pipes: [CategoryListPipe],
providers: [MediaItemService],
templateUrl: 'app/media-item-list.component.html',
styleUrls: ['app/media-item-list.component.css']
})
export class MediaItemListComponent {
constructor(private mediaItemService: MediaItemService) {
//.subscribe(mediaItems => {
// this.mediaItems = mediaItems;
//});
}
ngOnInit() {
this.mediaItems = this.mediaItemService.get().subscribe(mediaItems => {
this.mediaItems = mediaItems;
});
}
onMediaItemDeleted(mediaItem) {
this.mediaItemService.delete(mediaItem);
}
mediaItems;
}
꾸러미json 파일:
{
"version": "1.0.0",
"name": "TestFunWithAngi",
"private": true,
"dependencies": {
"angular2": "^2.0.0-beta.17",
"systemjs": "^0.19.31",
"es6-promise": "^3.2.1",
"es6-shim": "^0.35.1",
"reflect-metadata": "^0.1.3",
"rxjs": "^5.0.0-beta.9",
"tsd": "^0.6.5",
"zone.js": "^0.6.12"
},
"devDependencies": {
"typescript": "^1.8.10",
"typings": "^0.8.1",
"grunt": "1.0.1",
"grunt-contrib-copy": "1.0.0",
"grunt-contrib-uglify": "1.0.1",
"grunt-contrib-watch": "1.0.0",
"grunt-ts": "5.5.1"
}
}
당신은 당신의 집으로 돌아오는 것을 잊었습니다.get()
또한 반환하지 않고 람다 함수의 본문을 캡슐화하지 마십시오.만약 당신이 그냥 한다면 암묵적인 수익이 발생하고 있습니다.response => response.json()
그렇지 않으면 다음과 같이 작성해야 합니다.response => { return response.json(); }
.
다음은 개선된 방법입니다.
get() {
// return this.mediaItems;
return this.http.get("/api/MediaItem").map(response => response.json());
}
또한 그냥 생략하세요.this.http = http;
생성자에 있습니다.쓰기public
또는private
생성자 인수 앞에 이미 클래스 멤버로 추가되었습니다.
get()-Function은 관찰 가능 -> 구독할 항목을 반환하지 않습니다.시도:
get() {
return this.http.get("/api/MediaItem").map(response => { response.json() });
}
언급URL : https://stackoverflow.com/questions/37990993/property-subscribe-does-not-exist-on-type-void-angular-2-asp-net-core
'programing' 카테고리의 다른 글
장고에서 동적 필드 룩업으로 쿼리 세트를 어떻게 필터링합니까? (0) | 2023.07.15 |
---|---|
Node.js - 여러 비동기 호출 대기 (0) | 2023.07.15 |
엔디언은 바이트의 비트 순서를 나타낼 수 있습니까? (0) | 2023.07.15 |
정규 분포 그림을 그리는 방법 (0) | 2023.07.15 |
도커 구성 작업이지만 비주얼 스튜디오 코드 개발 컨테이너를 사용하면 작업이 수행되지 않습니다. (0) | 2023.07.15 |