2016-01-26 1 views
0

Я установка моего приложения с HTTP_PROVIDERSAngular2 Http Request возвращает Наблюдаемым без метода карты

bootstrap(AppComponent, [ 
    HTTP_PROVIDERS, 
    ROUTER_PROVIDERS, 
    provide(LocationStrategy, { useClass: HashLocationStrategy }), 
    PostService 
]); 

и мой сервис как

@Injectable() 
export class PostService { 
    posts = []; 

    constructor(http: Http) { 
    this.http = http; 
    } 
} 

но когда я называю

this.http.get('/posts') 

Она возвращает Observable, который не имеет метода map, это driv я сошел с ума в течение нескольких часов. Я использую Babel для перевода моего кода javascript.

+2

Они удалили большую часть операции из кода, вам нужно импортировать часть библиотеки, которая включает этот метод вручную. Попробуйте это: 'import 'rxjs/add/operator/map';' – Langley

+1

Посмотрите этот ответ: http://stackoverflow.com/questions/34515173/angular-2-http-get-with-typescript-error-http-get -map-is-not-a-function-in/34515276 # 34515276 –

+0

@ThierryTemplier, спасибо, я закрыл его как дуп. (Я думаю, этот вопрос возникает раз в неделю.) –

ответ

3

Новоиспеченные Server Communication DEV руководство (в конце концов) обсуждает/упоминает/объясняет это:

Библиотека RxJS довольно велика. Размер имеет значение, когда мы создаем производственное приложение и развертываем его на мобильных устройствах. Мы должны включать только те функции, которые нам действительно нужны.

Соответственно, Угловое выставляет усеченную версию Observable в rxjs/Observable модуля, версия, которая испытывает недостаток почти всех операторов, включая те, которые мы хотели бы использовать здесь, такие как метод map ...

Это до нам добавить необходимые нам операторы. Мы могли бы добавить каждый оператор, один за другим, до тех пор, пока у нас не будет пользовательской реализации Observable, настроенной именно на наши требования.

Например, в качестве @ комментарий Лэнгли выше показывает:

import 'rxjs/add/operator/map'; 

Или, если мы ленивы, мы можем просто взять в полный набор операторов:

import 'rxjs/Rx'; 
Смежные вопросы