내 코드는 다음과 같습니다.게시물 요청으로 데이터를 보내지 않고 서버를 다시 시작합니다 (Angular2/Node.js)
서비스 :
import { Injectable } from "@angular/core";
import { Http, Headers, RequestOptions } from "@angular/http";
import { Observable } from "rxjs/Observable";
import 'rxjs/Rx';
import {Heatmap} from "./heatmap"
@Injectable()
export class HeatmapService {
constructor (private _http: Http) {}
signup(heatmap: Heatmap) {
const body = JSON.stringify(heatmap);
const headers = new Headers({'Content-Type': 'application/json'});
const options = new RequestOptions({ headers: headers });
return this._http.post('http://localhost:8080/create', body, options)
.map(response => response.json())
.catch(error => Observable.throw(error.json()));
}
}
구성 요소 :
import { Component, OnInit } from "@angular/core";
import { FormBuilder, FormGroup, FormControl, Validators } from "@angular/forms";
import { Heatmap } from "./heatmap";
import { HeatmapService } from "./heatmap.service";
@Component({
templateUrl: 'js/app/heatmap/heatmap.component.html'
})
export class heatmapComponent implements OnInit {
myForm: FormGroup;
constructor(private formBuilder: FormBuilder, public heatService: HeatmapService) {}
onSubmit() {
const heatmap = new Heatmap(this.myForm.value.name, this.myForm.value.data, this.myForm.value.country);
console.log(heatmap)
this.heatService.sendData(heatmap)
.subscribe(
data => console.log(data),
error => console.error(error)
)
}
ngOnInit() {
this.myForm = this.formBuilder.group({
name: ['', Validators.required],
data: ['', Validators.required],
country: ['', Validators.required]
});
}
}
HTML :
<form [formGroup]="myForm" (ngSubmit)="onSubmit()">
<div class="form-group">
<label for="name">name</label>
<input type="text" id="name" class="form-control" formControlName="name">
</div>
<div class="form-group">
<label for="data">data</label>
<input type="text" id="data" class="form-control" formControlName="data">
</div>
<div class="form-group">
<label for="country">country</label>
<input type="text" id="country" class="form-control" formControlName="country">
</div>
<button type="submit" class="btn btn-primary" [disabled]="!myForm.valid">Sign Up</button>
</form>
히트 맵 :
export class Heatmap {
constructor(public name: string, public data: string, public country: string){}
}
문제 :
양식을 제출할 때마다 데이터가 기록되지 않아 서버가 자동으로 다시 시작되고 어떤 오류도 볼 필요가 없습니다.
내가 할 수있는 유일한 오류가 꿀꺽에서 출력 -
오류 TS2339 : 부동산의 '같이 sendData가'형 'HeatmapService'에 존재하지 않습니다.
누군가 도움을 줄 수 있기를 바랍니다.
아, 네가 미안하다. 나는 이것을 'this.heatService (heatmap)'처럼하기 전에이 튜토리얼에서 작업을 시도했다. 방금 연결 했어. – since095