Hintergrund, aktuelle Implementierung von Klassen/Modulen in unserer App ist common.js und CoffeeScript-Klassen. Ich suche verzweifelt nach einer Lösung, um mit ES6 oder TypeScript zu arbeiten, aber das Problem bleibt bestehen.Angular.js DI mit (ES6) Klassen und Vererbung
Wie mache ich DI mit Klassenvererbung mit Angular-1.x?
den Code Gegeben:
// 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 }
muss man in der SubService
hier neu definieren alle Eltern DI Anforderungen, um super()
erfolgreich zu nennen?
Wir sind derzeit so etwas wie die folgenden Aktionen ausführen:
// 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() });
Welche auch weniger als ideal ist, abgesehen von hässlich zu sein.
Haben Sie jemals eine Lösung finden Dies? Wir nähern uns auch in ähnlicher Weise, aber es muss einen besseren Weg geben. – forrestranger
Genau aus diesem Grund hat mein Team den ES6 für unsere eckigen Dinge noch nicht gemacht, wir hoffen, dass dies irgendwie in der Typoskript-Bewegung in ng-2.0 angesprochen wird, aber wir sehen nichts, das löst das noch nicht. –
Wie in den meisten anderen Bereichen auch, ist es in AngularJS einfacher und lesbarer, die Komposition über die Vererbung zu verwenden. – Thomas