【发布时间】:2017-03-21 08:53:34
【问题描述】:
我正在使用 Angular 1.6 和 ES6。到目前为止,我在 ES6 类上使用 extend 关键字实现了继承
export default class myChildService extends myBaseService {
constructor(someDependency){
'ngInject'
super();
someDependency.doStuff();
}
}
并将子类注册为 angular-service
import myChildService from ./myChildService
angular.module('myApp', [])
.service('myChildService', myChildService)
到目前为止效果很好!
但是,我想将我的应用程序拆分为更小的模块。这意味着我将拥有几个不同的角度模块,它们需要访问myBaseService 才能继承功能。
我可以只import 包含myBaseService 的文件,但这似乎不是很棱角分明。这基本上意味着我每次使用继承时都会忽略角度模块和 DI。
问题:
有没有办法从角度模块 base 导出 ES6 类,以便我可以在依赖于 base 的角度模块 child 上重用它?
也许我只是看错了 - 如果您有其他建议来实现角度服务/工厂的继承使用 ES6 类,请继续。
【问题讨论】:
-
我想说你必须在所有你想
extend它的地方importmyBaseService。 -
我猜 - 混合 angular-modules 和 es6-modules 感觉不对。至少我没有看到任何其他暴露角度模块以及一些普通 es6 类的角度库。
-
“混合使用 angular-modules 和 es6-modules 感觉不对” 它们完全不相关。这不是一个或另一个。
-
我同意@Arg0n 解决方案。
标签: javascript angularjs inheritance ecmascript-6 es6-class