2016-03-28 8 views
-1

Hi Unten ist der Code für einen Controller in Angular, an dem ich arbeite. Ich verweise auf svcSPoint, eine Fabrik, die für das Modul registriert ist. Was ich nicht vorstellen kann, ist das. Ich bin in der Lage, auf svcSpoint zuzugreifen ist im Konstruktor, wie die ng-Annotate die Fabrik injiziert. Allerdings kann ich in der Funktion SelectChanged() nicht auf den SvcSPoint zugreifen.angularjs - Wert zwischen den Fabriken teilen

Was ich versuche zu erreichen ist, den Wert einer Fabrik zu setzen, wenn ein Ereignis in DOM ausgelöst wird. Wie kann ich einen Wert in global erfassen, so dass ich darauf in einer Reihe von Controllern und Fabriken zugreifen kann.

'use strict'; 

class NavbarController { 
    //start-non-standard 
    menu = [{ 
     'title': 'Home', 
     'state': 'main' 
    }]; 

    isCollapsed = true; 
    //end-non-standard 

    constructor(Auth, svcSPoint) { 
     this.isLoggedIn = Auth.isLoggedIn; 
     this.isAdmin = Auth.isAdmin; 
     this.currentuser = svcSPoint.currentuser; 
     this.scopeSelect = 'NAL'; 
     this.scopeSelects = ['NAL', 'USL', 'CAD']; 
     svcSPoint.scopeSelection = this.scopeSelect; 

     this.svcSPoint = svcSPoint; 

    } 


    SelectChanged() { 
     svcSPoint.scopeSelection = this.scopeSelect; 

    } 
} 

angular.module('nalAngularDashApp') 
    .controller('NavbarController', NavbarController); 

Antwort

0

Für jeden, der das gleiche Problem hat und beginnt, eckig zu lernen. Mein Code fing an zu arbeiten, als ich ihn von Fabrik zu Dienst änderte. da der Dienst jedes Mal, wenn er alle globalen Werte beibehält, als Klasse instanziiert wird. Ich verwende Service, um Daten zwischen Controllern und Direktiven zu teilen.

Verwandte Themen