Sta*_*boy 9 javascript typescript ecmascript-6 angular
尝试使用一些数据对我的服务器进行简单的POST,并返回一些JSON数据.(目前,它通过电话运行,但我在网络选项卡上看不到它实际上试图制作它?)
我的服务(api.service.ts)
import { Injectable } from '@angular/core';
import { Headers, Http, Response} from '@angular/http';
import {Observable} from 'rxjs/Rx';
// Import RxJs required methods
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/catch';
@Injectable()
export class ApiService {
private headers = new Headers({'Content-Type': 'application/json'});
private myUrl = 'https://www.mywebsite.com'; // URL to web api
private payLoad = {"thingy1":"Value1", "thingy2":"value2"};
constructor(private http:Http) { }
getData () {
this.http.post(this.myUrl, JSON.stringify(this.payLoad), this.headers)
.map((res:Response) => res.json())
.catch((error:any) => Observable.throw(error.json().error || 'Server error'));
}
}Run Code Online (Sandbox Code Playgroud)
然后我只是在头组件中运行getData方法来触发它.(header.component.ts)
import { Component, OnInit } from '@angular/core';
//Service
import { ApiService } from '../services/api.service';
@Component({
selector: 'app-header',
templateUrl: './header.component.html',
styleUrls: ['./header.component.scss']
})
export class HeaderComponent implements OnInit {
constructor(private service:ApiService) {
this.service.getData(); //Fire getData from api.service
}
ngOnInit() { }
}Run Code Online (Sandbox Code Playgroud)
Pan*_*kar 12
Observable是懒惰的,即使你初始化它们也不会被执行.至少有一个订户必须明确subscribe地向该observable监听该流.简而言之:它们只会在您订阅时执行.
this.service.getData().subscribe(
(data) => console.log(data)
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4822 次 |
| 最近记录: |