2016-03-15 2 views
1

Я пытался несколько раз получить базовую услугу, созданную с использованием Subject и BehaviorSubject из RXJS ... Моя проблема в том, что каждый раз, когда я включаю RXJS, компиляторы TypeScript без ошибок, но я получаю эта ошибка:Угловая 2 Бета 9 не найден RXJS

Console Screen Grab

После обновления моего index.html на основе this поста я получаю следующие ошибки (и не загрузки страницы).

Post Updated html file

Я все еще довольно новый для угловой 2, машинописи и RXJS поэтому любая помощь приветствуется. Я отправил то, что, как я считаю, был всем соответствующим кодом ниже, сообщите мне, есть ли что-то еще, что может помочь, и я обновлю запрошенную часть.

Index.html * Обновлено

<html> 
 
<head> 
 
    <title>SCV Equipment Tracker</title> 
 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
 

 
    <!-- 1. Load libraries --> 
 
    <!-- IE required polyfills, in this exact order --> 
 
    <script src="node_modules/es6-shim/es6-shim.min.js"></script> 
 
    <script src="node_modules/systemjs/dist/system-polyfills.js"></script> 
 
    <script src="node_modules/angular2/es6/dev/src/testing/shims_for_IE.js"></script> 
 

 
    <script src="node_modules/angular2/bundles/angular2-polyfills.js"></script> 
 
    <script src="node_modules/systemjs/dist/system.src.js"></script> 
 
    <script src="node_modules/rxjs/bundles/Rx.js"></script> 
 
    <script src="node_modules/angular2/bundles/angular2.dev.js"></script> 
 
    <script src="node_modules/angular2/bundles/router.dev.js"></script> 
 

 
    <!-- Front End Libraries --> 
 
    <script src="node_modules/jquery/dist/jquery.min.js"></script> 
 
    <link rel="stylesheet" type="text/css" href="semantic/dist/semantic.min.css"> 
 
    <script src="semantic/dist/semantic.min.js"></script> 
 
    <link rel="stylesheet" type="text/css" href="template/css/main.css"/> 
 

 
    <!-- 2. Configure SystemJS --> 
 
    <script> 
 
     System.config({ 
 
      defaultJSExtensions: true, 
 
      paths: { 
 
       // DON'T CHANGE KEY OF THIS PATH, CHANGE VALUE ONLY 
 
       // IF YOU EXPOSE node_modules as public/static dir to your app, you can remove this line. 
 
       'semantic-ui/dist/components/*': 'semantic/dist/components/*.js', 
 
       // REQUIRED BY ANGULAR 2 (CHANGE PATH) 
 
      }, 
 
      map: { 
 
       // IF YOU ARE NOT ABLE TO LOAD FROM node_modules 
 
       // you must copy ng-semantic from /node_modules/ng-semantic 
 
       // (files: semantic.js, semantic.d.ts and folder: ng-semantic) 
 
       // and set path to it 
 
       'ng-semantic/semantic': 'node_modules/ng-semantic/semantic.js' 
 
      }, 
 
      packages: { 
 
       app: { 
 
        format: 'register', 
 
        defaultExtension: 'js' 
 
       } 
 
      } 
 
     }); 
 
     System.import('app/boot') 
 
       .then(null, console.error.bind(console)); 
 
    </script> 
 
</head> 
 

 
<!-- 3. Display the application --> 
 
<body> 
 
<eqTracker> 
 
    <div class="ui active inverted dimmer"> 
 
     <div class="ui large text loader">Loading</div> 
 
    </div> 
 
</eqTracker> 
 
</body> 
 
</html>

{ 
 
    "name": "equipment-tracker-frontend", 
 
    "version": "0.0.1", 
 
    "description": "front end for equipment tracker", 
 
    "main": "index.html", 
 
    "scripts": { 
 
    "start": "npm run tsc:w ", 
 
    "tsc": "tsc", 
 
    "tsc:w": "tsc -w", 
 
    "lite": "lite-server", 
 
    "typings": "typings", 
 
    "postinstall": "typings install" 
 
    }, 
 
    "author": "", 
 
    "license": "MIT", 
 
    "dependencies": { 
 
    "angular2": "2.0.0-beta.9", 
 
    "es6-promise": "^3.0.2", 
 
    "es6-shim": "^0.33.3", 
 
    "jquery": "^2.2.1", 
 
    "ng-semantic": "^1.0.17", 
 
    "reflect-metadata": "0.1.2", 
 
    "rxjs": "5.0.0-beta.2", 
 
    "semantic-ui": "^2.1.8", 
 
    "systemjs": "0.19.24", 
 
    "zone.js": "0.5.15" 
 
    }, 
 
    "devDependencies": { 
 
    "typescript": "^1.8.7", 
 
    "typings": "^0.7.5" 
 
    } 
 
}

UserService.ts (обратите внимание, что это клон нг-книга 2 обслуживания пользователей, как это то, что я изучаю угловой 2 от)

import {Injectable, bind} from 'angular2/core'; 
 
import {Subject, BehaviorSubject} from 'rxjs'; 
 

 
//Models 
 
import {User} from "../models/user.model"; 
 

 
@Injectable() 
 
export class UserService{ 
 
    currentUser: Subject<User> = new BehaviorSubject<User>(null); 
 

 
    public setCurrentUser(newUser: User):void{ 
 
     this.currentUser.next(newUser); 
 
    } 
 
} 
 

 
export var userServiceInjectables: Array<any> = [ 
 
    bind(UserService).toClass(UserService) 
 
];

основе

Обновлено ошибка ответ Тьерри TEMPLIER в Таким образом, после обновления моей страницы index.html на основе ответа Тьерри я получаю следующее: Post errors after updated index.html

Теперь я скучаю все мои угловые материал тоже ...

Редактировать с временным решением: Итак, я нашел решение, которое работало благодаря комментарию Тьерри Темплиера ... От оригинала Инал службы мне нужно включать ПРМ такие вещи, как импорт {Subject, BehaviorSubject} from 'rxjs/Rx'; После этого с отображениями я уже имел он сделал работу

System.config({ 
     defaultJSExtensions: true, 
     paths: { 
      // DON'T CHANGE KEY OF THIS PATH, CHANGE VALUE ONLY 
      // IF YOU EXPOSE node_modules as public/static dir to your app, you can remove this line. 
      'semantic-ui/dist/components/*': 'semantic/dist/components/*.js', 
      // REQUIRED BY ANGULAR 2 (CHANGE PATH) 
     }, 
     map: { 
      // IF YOU ARE NOT ABLE TO LOAD FROM node_modules 
      // you must copy ng-semantic from /node_modules/ng-semantic 
      // (files: semantic.js, semantic.d.ts and folder: ng-semantic) 
      // and set path to it 
      'ng-semantic/semantic': 'node_modules/ng-semantic/semantic.js', 
      'angular2': 'node_modules/angular2', 
      'rxjs': 'node_modules/rxjs' 
     }, 
     packages: { 
      app: { 
       format: 'register', 
       defaultExtension: 'js' 
      } 
     } 
    }); 

Из всего, что я читать, пытаясь решить эту проблему, и пытается узнать Угловое 2 Thierry Templier должен быть правильным, и сопоставления не нужны. Я попытаюсь погрузиться в эту проблему и решить ее в другой раз, но это и его комментарий, который помог мне получить рабочую угловую заднюю часть, - это то, почему его ответ был принят.

+0

Я думаю, что я получил эту ошибку, когда я был неправильно rxjs verision, а не тот, который требовался angular2 ... – eesdil

+0

@eesdil Какой версии rxjs были вы используете?За самый быстрый быстрый запуск Angular2 beta 9 использует RXJS 5.0.0-beta2, я удалил и принудительно переустановил и все еще имел ошибку, являются ли документы неправильными? – Dragonman117

+0

Все должно быть хорошо. Обычно я использую jspm, так что это другое дело. Также я вижу, что у вас неправильные пути ... Тьерри должен быть прав, не должен включать в себя rxjs на карте ... – eesdil

ответ

1

Поскольку вы включаете файл node_modules/rxjs/bundles/Rx.js, я не думаю, что вам нужно настроить rxjs в вашу конфигурацию SystemJS.

На самом деле файл регистрирует явно модули с использованием System.register. То же самое для файлов Angular2.

Я бы обновить конфигурацию, как это:

System.config({ 
    defaultJSExtensions: true, 
    paths: { 
    'semantic-ui/dist/components/*': 'semantic/dist/components/*.js' 
    }, 
    map: { 
    'ng-semantic/semantic': 'node_modules/ng-semantic/semantic.js', 
    }, 
    packages: { 
    app: { 
     format: 'register', 
     defaultExtension: 'js' 
    } 
    } 
}); 
+0

Hey Thierry Templier, спасибо за предложение, это та же конфигурация, которая сгенерировала первый набор ошибок. .. (если я удаляю строку 'angleular2': 'node_modules/angular2', я не могу получить маршрутизаторы или что-то еще). Так что еще не исправить. – Dragonman117

+0

На самом деле, чтобы использовать маршрутизацию в Angular2, вам нужно включить файл 'node_modules/angular2/bundles/router.dev.js' в ваш HTML-файл ... –

+0

Жаль, что это был файл' router.dev.js' в мой предыдущий комментарий ;-) –

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