2017-01-23 1 views
1

Ich habe versucht, Daten zwischen den Komponenten zu teilen und folgte Ratschläge von here, um ein Geschäft zu machen.Wie kann eine Funktion in einer Komponente auf die im Konstruktor importierte Factory zugreifen?

Es funktioniert alles gut von innerhalb meiner Komponenten Konstruktor, aber ich kann nicht herausfinden, wie man den Funktionen ähnlichen Zugang geben.

class Home { 
    constructor($scope, $reactive, Store) { 
    'ngInject'; 

    $reactive(this).attach($scope); 

    this.selectedDate = Store.get().selectedDate; 
} 

Das alles funktioniert, aber der Laden Zugriff hier nicht funktioniert:

nextDay(){ 
    'ngInject'; 
    Store.set({selectedDate: moment(this.selectedDate).add(1, 'd').format('YYYY-MM-DD')}); 
    console.log('nextDay'); 
} 

Ich habe versucht Store $ reaktive Befestigung, ich habe versucht, this.Store und vorbei Shop als agrument zu nextDay() aber kann es nicht herausfinden. Jede Hilfe würde sehr geschätzt werden.

Dank

Antwort

1

Sie sollten die Dienste (injiziert Dinge) auf der Klasse

beispielsweise zuordnen, wenn Sie wollen Verwendung Shop this.Store = Shop zuweisen und dann können Sie es von allen Methoden in die Klasse als this.Store

class Home { 
     constructor($scope, $reactive, Store) { 
     'ngInject'; 
     this.Store = Store; 
     this.$reactive = $reactive; 
     this.$scope = $scope; 
     this.$reactive(this).attach($scope); 

     this.selectedDate = this.Store.get().selectedDate; 
     } 

     nextDay(){ 
     this.Store.set({selectedDate: moment(this.selectedDate).add(1, 'd').format('YYYY-MM-DD')}); 
     console.log('nextDay'); 

     } 
    } 
+0

Vielen Dank, ich dachte, es wäre etwas Einfaches! – enfrost

Verwandte Themen