2017-09-12 4 views
1

Ich schreibe Dienste und Controller in meiner App (Angularjs - 1.6.3) mit ES6-Klassen.Ist es möglich, ES6 Klassenkonstruktor Argumente Liste zu bekommen?

Ich möchte ein Stück Code vereinfachen, aber nicht wissen, ob es möglich ist und wie ES6 Klassenkonstruktor Argumente Liste zu bekommen.

Beispiel für Stück ich brauche um Doppelarbeit zu vermeiden zu vereinfachen:

class MyService { 

    constructor (
     $q, 
     $translate, 
    ) { 

     this.$q = $q; 
     this.$translate = $translate; 
    } 
} 

angular 
    .module('app') 
    .service('myService', MyService); 

Gibt es eine Möglichkeit automatisch Abhängigkeiten zu bestimmten Kontext hinzufügen?

Wissen, dass in angular2 es Dekorateure sind, die nicht hilft Abhängigkeiten zu duplizieren sie in aktuellen Bereich hinzuzufügen (oder sie tun dies auf andere Weise)

+0

https://stackoverflow.com/questions/27619274/is-automatic-dependency-injection-available-in-angularjs –

Antwort

0

Sie Object.assign mit Destrukturierung kombiniert verwenden:

class Service { 
    constructor($q, $translate) { 
     Object.assign(this, { $q, $translate }); 
    } 
} 

Dies entspricht dem von Ihnen geschriebenen Code.

+0

Wenn dies die Antwort ist, ist nicht die Frage ein Duplikat von [this] (https://stackoverflow.com/questions/27529518/automatic-set-arguments-as-instance-properties-in-6)? Ich bin mir nicht sicher, was das OP mit "Argumentenliste" meint. – Bergi

Verwandte Themen