2016-08-02 4 views
0

я получил TS-файл, который содержит некоторые пользователь:Как получить данные с помощью Http.get из моего проекта?

Quickstart-тревоги/приложение/макет/user.mock.ts:

import {User} from "../user"; 

export const USERS:User[]=[ 
    new User(....); 
]; 

serice - Быстрый старт-тревоги/приложение/услуги/пользователь. 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, которые говорят, что он не может найти .../имитировали/user.mock.ts.

Как это сделать?

+0

Попробуйте две точки вместо трех: "../mock/user.mock.ts". Добавьте тег для языка программирования. –

ответ

1

Вы можете загрузить файл в формате 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(); 
    }); 
} 
+0

Thansk для ответа! В любом случае я могу использовать «новый пользователь (params ...)» внутри json-файла? Если нет, это единственный способ понять, что я пытаюсь сделать? –

+0

я добавил другой возможность! :) – rinukkusu

+0

Вы можете поместить любое значение в запрос '.onNext'. Потенциально массив с пользователями! – rinukkusu

0

Использование Promise.resolve вместо HTTP GET

public loadUsers():Observable<User[]>{ 
    return Promise.resolve([ new User(....);]); 
    } 
+0

Я хочу использовать http.get и позже, я только изменю адрес на реальный сервер. –

Смежные вопросы