【问题标题】:can we add es6 classes to an existing angular 1.x ROR app?我们可以将 es6 类添加到现有的 Angular 1.x ROR 应用程序吗?
【发布时间】:2016-07-19 23:34:48
【问题描述】:
我有一个使用 Angular 1.4.9 的现有 RoR 应用程序。我想玩转 ES-6 功能,我想在 ES6 中使用 Class 构建新功能。
是否可以使用定义可以在现有角度应用程序中使用的新类,反之亦然。我知道您可以使用转译器(如 babel)并将 js 添加到 rails 资产管道。我的问题是关于如何在 es6 类和现有 Angular 应用代码之间导出/导入模块。
【问题讨论】:
标签:
javascript
ruby-on-rails
angularjs
babeljs
【解决方案1】:
一种方法是将纯 ES6 类/模块放在单独的文件中,例如。
class UserService {
// all your beautiful ES6 class stuff goes here ...
}
export {UserService};
并在一个单独的文件中导入这些并将它们插入 angular 1.*
import 'angular';
import {UserService} from './user-service';
angular.module('myApp', [])
.service('userService', UserService);
这有助于将基于 ES6 的新业务逻辑与 Angular 1.* 代码分开,这有助于轻松升级到 Angular 2.*
下一步是设置一个构建过程,它不仅可以处理 ES6 的转译,还可以处理 ES6 模块的导入/导出。我们发现 jspm (http://jspm.io/) 是一个不错的选择。这里有此方法的入门指南http://legacytotheedge.blogspot.co.nz/2015/01/using-es6-with-your-angularjs-project.html