Comment utiliser Angular2 et Typescript dans Jsfiddle

Question fictive ...

J'essaie de coder un angular2 (2.0.0-bêta.6) application à la Machine dans jsfiddle.

Je sais qu'il y a d'autres solutions en ligne mais ...

En fait, mon exemple est très petit et que le problème est sur le module d'importation :

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

j'ai l'erreur suivante :

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

j'essaie d'ajouter quelques dépendances (require, system ...) mais il ne fonctionne pas.

Et il n'y a plus de bundle auto-exécutable pour version récente (bêta-6) D'Angular2 (angular2.sfx.dev.js).

Quelques tests :

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/

17
demandé sur asicfr 2016-02-12 19:47:52

3 réponses

dans Plunker vous pouvez simplement utiliser le menu

New > Angularjs > 2.0.x (TS)

pour obtenir une application Angular2 de travail minimale

Routeur

Si vous souhaitez utiliser le routeur ajouter config.js

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

<base href="."> comme premier enfant dans le <head>index.html peut-être nécessaire.

pour passer à HashLocationStrategy modifier 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));
10
répondu Günter Zöchbauer 2016-05-25 09:44:54

Si vous n'êtes pas lié JS Fiddle, envisagez de Plunker à la place. Les devs angulaires maintiennent un espace de travail nu à jour avec de nouvelles versions angulaires à ce lien.

Il est plus courant que même Plunker propre Angulaire 2 de l'installation (à laquelle vous pouvez accéder à partir de la Plunker menu: New > AngularJS > 2.0.x (TS)

le mauvais côté: cette configuration est en TypeScript, donc si vous souhaitez développer avec JavaScript (ES5 ou ES6), votre meilleur pari est d'utiliser l'option de menu Plunker à la place.

8
répondu BeetleJuice 2016-06-25 04:41:58

vous devez aussi inclure le fichier SystemJS js. J'ai vu que vous l'avez manqué. Tous ces inclusions sont nécessaires:

<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>

vous devez aussi configurer SystemJS avec le code suivant et ensuite importer votre module principal contenant la fonction bootstrap:

System.config({
  transpiler: 'typescript', 
  typescriptOptions: { emitDecoratorMetadata: true }, 
  packages: {
    'app': {
      defaultExtension: 'ts'
    }
  } 
});
System.import('app/main')
.then(null, console.error.bind(console));
0
répondu Thierry Templier 2016-05-25 06:14:04