[英]how to get data using Http.get from my project?
I got a ts file that contain some users: 我得到了一个包含一些用户的ts文件:
quickstart-muster/app/mock/user.mock.ts: quickstart-muster / app / mock / user.mock.ts:
import {User} from "../user";
export const USERS:User[]=[
new User(....);
];
A serice - quickstart-muster/app/services/user.service.ts: 服务-quickstart-muster / app / services / user.service.ts:
import { Injectable } from '@angular/core';
import {Observable} from "rxjs/Observable"
import 'rxjs/add/operator/map';
import 'rxjs/add/observable/fromPromise';
import 'rxjs/add/operator/toPromise';
import {Http} from "@angular/http";
import {User} from "../user";
@Injectable()
export class UserService {
constructor(private http:Http){}
public loadUsers():Observable<User[]>{
return this.http.get('../mock/user.mock.ts')
.map(res=>res.json());
}
}
I know thats not gonna work and its not, i get 404 error that say he can't find .../mock/user.mock.ts. 我知道那是行不通的,它不会,我得到404错误,说他找不到... / mock / user.mock.ts。
How do I make it work? 我该如何运作?
You could load a JSON file instead like it would come from the API: 您可以改为加载JSON文件,就像它来自API:
/data.json /data.json
[
{
"id": 1234,
"name": "...",
...
},
...
]
and then you can load it like this: 然后可以像这样加载它:
public loadUsers(): Observable<User[]>{
return this.http.get('data.json')
.map(res => res.json());
}
You could also create an Observable
from scratch like this: 您也可以像这样从头开始创建Observable
:
public loadUsers(): Observable<User[]> {
return Observable.create((observer) => {
observer.onNext(USERS);
observer.onCompleted();
});
}
Use Promise.resolve instead of http get 使用Promise.resolve代替http get
public loadUsers():Observable<User[]>{
return Promise.resolve([ new User(....);]);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.