Как использовать Angular2 и Typescript в Jsfiddle

Фиктивный вопрос...
Я пытаюсь закодировать приложение angular2 (2.0.0-beta.6) в Typescript в jsfiddle.
Я знаю, что есть другое решение онлайн, но... На самом деле мой пример очень мал, и проблема связана с модулем импорта:

import {bootstrap} from 'angular2/platform/browser'
import {Component} from 'angular2/core';

Я получил следующую ошибку:

Uncaught ReferenceError: System is not defined
Uncaught ReferenceError: require is not defined

Я пытаюсь добавить некоторые зависимости (require, system...), но это не работает.
И больше нет пакета самоизготовления для последней версии (бета-6) angular2 (angular2.sfx.dev.js).

Некоторые тесты:
  https://jsfiddle.net/asicfr/q8bwosfn/1/
  https://jsfiddle.net/asicfr/q8bwosfn/3/
  https://jsfiddle.net/asicfr/q8bwosfn/4/
  https://jsfiddle.net/asicfr/q8bwosfn/5/
  https://jsfiddle.net/asicfr/q8bwosfn/6/

Ответы

Ответ 1

В Plunker вы можете просто использовать меню

New > Angularjs > 2.0.x (TS)

чтобы получить минимальное рабочее приложение Angular2

маршрутизатор

Если вы хотите использовать маршрутизатор add в config.js

'@angular/router': {
  main: 'router.umd.js',
  defaultExtension: 'js'
},

<base href=".">, поскольку первый ребенок в <head> of index.html также может понадобиться.

Чтобы переключиться на HashLocationStrategy изменить main.ts с

import {bootstrap} from '@angular/platform-browser-dynamic';
import {App} from './app';

bootstrap(App, [])
  .catch(err => console.error(err));

к

import {bootstrap} from '@angular/platform-browser-dynamic';
import {App} from './app';
import {provide} from '@angular/core'
import {ROUTER_PROVIDERS} from '@angular/router';
import {LocationStrategy, HashLocationStrategy} from '@angular/common';

bootstrap(App, [ROUTER_PROVIDERS, provide(LocationStrategy, {useClass: HasLocationStrategy}])
  .catch(err => console.error(err));

Ответ 2

Если вы не привязаны к JS Fiddle, рассмотрите Plunker. Разработчики Angular постоянно обновляют рабочее пространство с новыми выпусками Angular на этой ссылке.

Это более актуально, чем даже установка Plunker Angular 2 (доступ к которой вы можете получить из меню Plunker: New > AngularJS > 2.0.x (TS)

Недостаток: эта настройка находится в TypeScript, поэтому, если вы хотите разработать с помощью ванильного Javascript (ES5 или ES6), лучше всего использовать опцию меню Plunker.

Ответ 3

Вам также необходимо включить файл JS SystemJS. Я видел, что ты пропустил это. Все это включает в себя:

<script src="https://code.angularjs.org/2.0.0-beta.3/angular2-polyfills.js"></script>
<script src="https://code.angularjs.org/tools/system.js"></script>
<script src="https://code.angularjs.org/tools/typescript.js"></script>
<script src="https://code.angularjs.org/2.0.0-beta.3/Rx.js"></script>
<script src="https://code.angularjs.org/2.0.0-beta.3/angular2.dev.js"></script>

Вам также необходимо настроить SystemJS следующим кодом и затем импортировать основной модуль, содержащий функцию начальной загрузки:

System.config({
  transpiler: 'typescript', 
  typescriptOptions: { emitDecoratorMetadata: true }, 
  packages: {
    'app': {
      defaultExtension: 'ts'
    }
  } 
});
System.import('app/main')
.then(null, console.error.bind(console));