Фон, текущая реализация классов/модулей в нашем приложении является классом common.js и CoffeeScript. Я отчаянно ищу решение для работы с ES6 или TypeScript, но проблема остается.Angular.js DI с классами (ES6) и наследованием
Как сделать DI с наследованием класса с помощью Angular-1.x?
Учитывая код:
// SuperService.js
class SuperService {
constructor($http, $q, $etc) {
// Implementation is not important ...
}
}
export { SubService }
// SubService.js
import { SuperService } from './SuperService';
class SubService extends SuperService {
constructor($more, $di, $things, $here) {
// Implementation is not important ...
// // // // // // // // // //
// Problem exists here ... //
// // // // // // // // // //
super($we, $need, $all, $the, $super, \
$class, $di, $things, $every, $time, $we, \
$inherit, $from, $it)
}
}
export { SubService }
должен один, в SubService
здесь переопределить все требования родительского DI для того, чтобы успешно назвать super()
?
Мы в настоящее время сделать что-то похожее на следующее:
// CoffeeScript // Javascript
app.factory "subService", (Service) -> app.factory("subService", function(Service) {
SubService =() -> var SubService;
Service.call(@) SubService = function() {
@ Service.call(this);
return this;
# Overwrite some stuff on the "Service" };
Service::basepath = "/environments" Service.prototype.basepath = "/environments";
Service::model = Environment Service.prototype.model = Environment;
return new SubService();
new SubService() });
который также меньше, чем идеал, в стороне от некрасиво.
ли вы когда-нибудь найти решение это? Мы также приближаемся к нему аналогичным образом, но должен быть лучший способ. – forrestranger
Именно по этой причине моя команда еще не сделала переход на ES6 для наших угловых вещей, мы надеемся, что это как-то будет рассмотрено в машинописном перемещении в ng-2.0, но мы не видим ничего, что решает это еще. –
Как и в большинстве других мест, в AngularJS я считаю его более простым и понятным для использования композиции над наследованием. – Thomas