如何使用 Http.get 从我的项目中获取数据?
how to get data using Http.get from my project?
我得到了一个包含一些用户的 ts 文件:
quickstart-muster/app/mock/user.mock.ts:
import {User} from "../user";
export const USERS:User[]=[
new User(....);
];
服务 - 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());
}
}
我知道那行不通,但事实并非如此,我收到 404 错误,说他找不到 .../mock/user.mock.ts.
如何让它发挥作用?
使用 Promise.resolve 而不是 http get
public loadUsers():Observable<User[]>{
return Promise.resolve([ new User(....);]);
}
您可以加载 JSON 文件,而不是像它来自 API:
/data.json
[
{
"id": 1234,
"name": "...",
...
},
...
]
然后你可以这样加载它:
public loadUsers(): Observable<User[]>{
return this.http.get('data.json')
.map(res => res.json());
}
您也可以像这样从头开始创建 Observable
:
public loadUsers(): Observable<User[]> {
return Observable.create((observer) => {
observer.onNext(USERS);
observer.onCompleted();
});
}
我得到了一个包含一些用户的 ts 文件:
quickstart-muster/app/mock/user.mock.ts:
import {User} from "../user";
export const USERS:User[]=[
new User(....);
];
服务 - 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());
}
}
我知道那行不通,但事实并非如此,我收到 404 错误,说他找不到 .../mock/user.mock.ts.
如何让它发挥作用?
使用 Promise.resolve 而不是 http get
public loadUsers():Observable<User[]>{
return Promise.resolve([ new User(....);]);
}
您可以加载 JSON 文件,而不是像它来自 API:
/data.json
[
{
"id": 1234,
"name": "...",
...
},
...
]
然后你可以这样加载它:
public loadUsers(): Observable<User[]>{
return this.http.get('data.json')
.map(res => res.json());
}
您也可以像这样从头开始创建 Observable
:
public loadUsers(): Observable<User[]> {
return Observable.create((observer) => {
observer.onNext(USERS);
observer.onCompleted();
});
}