2016-07-19 9 views
1

Ich habe eine bestehende RoR-App, die angular 1.4.9 verwendet. Ich möchte mit ES-6-Features herumspielen, ich möchte neue Funktionen mit Class in ES6 erstellen. Ist es möglich, neue Klassen zu definieren, die innerhalb der vorhandenen eckigen App verwendet werden können und umgekehrt? Ich weiß, dass Sie transpilers (wie babel) verwenden können, und fügen Sie die js zu der Ressource-Pipeline von Rails hinzu. Meine Frage ist, wie man Module zwischen es6 Klassen & bestehenden eckigen App-Code exportieren/importieren kann.Können wir einer vorhandenen eckigen 1.x ROR-App ES6-Klassen hinzufügen?

Antwort

0

Ein Ansatz besteht darin, reine ES6-Klassen/Module in separaten Dateien zu speichern, z.

class UserService { 

    // all your beautiful ES6 class stuff goes here ... 
} 
export {UserService}; 

Und in einer separaten Datei importieren diese und und stecken Sie sie in Winkel 1. *

import 'angular'; 
import {UserService} from './user-service'; 

angular.module('myApp', []) 
    .service('userService', UserService); 

dies Ihre neue ES6 basierte Geschäftslogik von Winkel 1. * Code getrennt zu halten hilft, die helfen können, Erleichtern Sie das Upgrade auf eckig 2. *

Der nächste Schritt besteht darin, einen Build-Prozess einzurichten, der nicht nur das Umsetzen des ES6, sondern auch den ES6-Modulimport/-export übernehmen kann. Wir fanden jspm (http://jspm.io/) eine gute Option dafür. Für diesen Ansatz gibt es eine Kurzanleitung für den Einstieg. http://legacytotheedge.blogspot.co.nz/2015/01/using-es6-with-your-angularjs-project.html