在ES6(使用Traceur)中编写控制器,服务和指令的建议(如果有的话)是什么是未来的方法,以便大多数相同的代码可以与AngularJS 2.0一起使用。我意识到AngularJS 2.0仍然处于绘图板上,但如果我今天要开始一个新的应用程序,我会遵循哪种风格或约定,因此迁移到2.0将有望减轻痛苦。
声明一个类然后将对该类的引用传递到controller
或service
是我看到的一点:
var app = angular.module('myApp', []);
class MainCtrl {
....
}
class MyService {
....
}
app.controller('MainCtrl', MainCtrl);
app.service('MyService', MyService);
是否应该将MyService
类移动到一个单独的文件中以便将来可能export
它可以被注入?
当我使用AngularJS(< = 1.3.x)和ES6处理新项目时,要记住哪些其他事项?
更新 经过一番挖掘,我写了一系列博客文章,在我的博客上谈论我的发现
答案 0 :(得分:1)
ngEurope的角度团队今天证实,Angular 2.0中的$ controls,$ scopes,$ services和jqLite将不再存在。还将有一个全新的路由器,他们打算在未来几个月内向后移植到1.3。
为了准备迁移,他们建议只关注到目前为止已经在社区中发展的best practices/styles/conventions,并且当2.0准备就绪(明年某个时候)时,他们将找到从那里迁移的最佳方式。
此外,他们表示1.3版本将在2.0版本发布后至少一年半内得到全面支持。
答案 1 :(得分:0)
您可以定义ES6类并将其添加到现有的Angular 1.x应用程序中。您将需要设置转换等,但这是一个通用示例:
class PersonService{
constructor(){
}
getPerson(){
return 'Jim Smith';
}
}
angular.module('app').value('PersonService', PersonService);
class GreetingService{
constructor(){
}
sayHello(){
return 'Hello from ES6!';
}
}
angular.module('app').service('GreetingService', GreetingService);
此处有更多详情:http://www.syntaxsuccess.com/viewarticle/552dc66f955de264e1fbbaee