2016-07-15 4 views
0

Я разрабатываю небольшое приложение с угловым2, и я установил Rxjs 5. В каждом учебном пособии есть другой способ импортировать библиотеку Rxjs. Код для импорта в angular2 web не работает; Я имею в виду, что Websotrm не распознает Observable или любые его функции (из, подписаться, ...).Основные вопросы о Rxjs

  1. Что мне нужно сделать, чтобы исправить это?
  2. Если я импортирую все из Rxjs, будет ли загрузка сайта медленнее? (Я не буду иметь более 2- классов)
  3. (WebStorm вопроса) Как я сделать WebStorm автозаполнения имени функции с выходом нажатием альтом + пробелом
+0

Попробуйте подстроить ваше приложение с помощью 'angular-cli', и по умолчанию оно будет использоваться' rxjs'. Вам просто нужно импортировать его в свой компонент. –

+0

У меня слишком много ошибок при использовании angular-cli. поэтому я перешел в основную группу угловых команд проекта. Как угловой кли импортирует его? –

ответ

1

В последних дистрибутивах RXJS предусмотрены сломанные модули для уменьшения гигантского размера файла, à la Lodash. Импорт rxjs/Rx (как предлагает другой ответ) предоставит вам всю библиотеку и не предлагается.

Вместо метод импорта и операторы по отдельности:

  • для основных классов, импортировать класс из его контекстного модуля: import { Observable } from 'rxjs/Observable'
  • для методов экземпляра, используйте объем экземпляра в «добавить» сферу: import 'rxjs/add/observable/fromEvent' (примечание нет деструктурированного объект импорта - метод добавляется автоматически за счет импорта)
  • для операторов, импорт из add/operator объема: import 'rxjs/add/operator/switchMap'

Импорт оператора однажды делает его доступным для всех экземпляров, поэтому рекомендуется собрать все части, которые вы используете в одном файле, и импортировать этот файл там, где это необходимо, I.E. путем повторного экспорта экземпляров, которые вы используете.

import { Observable } from 'rxjs/Observable'; 
import { BehaviorSubject } from 'rxjs/BehaviorSubject'; 
import 'rxjs/add/observable/fromEvent'; 
import 'rxjs/add/operator/flatMap'; 
import 'rxjs/add/operator/switchMap'; 

export { Observable, BehaviorSubject }; 
0
  1. Это работает в моем проекты: import {Observable, Subject} from "rxjs/Rx";

  2. Необходимо только добавить Rx.umd.min.js от rxjs/bundles. Это около 170 КБ.

  3. Попробуйте обновить до WebStorm 2016.2. Я использую эту версию, и она работает нормально (при условии, что у вас есть правильный импорт). Лучшая поддержка Angular 2 в целом. См. Примечания к изменениям. Я практически никогда не использую Ctrl + Space. Совет. Установите значение Autopopup code completion (Настройки, Редактор, Завершение кода) до очень низкой задержки.

+0

Спасибо за ответ. Как и где я могу добавить Rx.umd.min.js? И у меня есть Webstrom 2016.2 и как я могу изменить задержку кода? он очень медленный. –

+0

Обратите внимание на импорт из rxjs/Rx, так как он импортирует все наблюдаемые типы и его операторы, которые суммируются в скомпилированном пространстве приложения. Оператором import для наблюдаемых и типов объектов является оператор импорта операторов rxjs/[type], основанный на статическом и экземпляре импорта – LookForAngular

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