6

Meine einseitige Anwendung hat 2 Controller: der erste ist für mein Hauptmenü und der zweite ist für die Ansicht. Sie teilen sich Daten mit diesem WerkUhr Fabrik Variable mit Winkel

myApp.factory('MenuFactory', function(){ 
var factory = { 
    Monitor: "doneJob", 
    Control: "", 
    Report: "", 
    Display: "", 
    setMonitor: function(value){ 
     factory.Monitor = value; 
    }, 
    setControl: function(value){ 
     factory.Control = value; 
    }, 
    setReport: function(value){ 
     factory.Report = value; 
    }, 
    setDisplay: function(value){ 
     factory.Display = value; 
    } 

}; 
return factory; 
}); 

Ich möchte Änderung auf factory.Control sehen, aber ich kann nicht machen es funktioniert.

Wenn ich versuche, dies:

$scope.$watch(function(){MenuFactory.Control}, function(NewValue, OldValue){ 
    console.log(NewValue + ' ' + OldValue); 
    console.log(MenuFactory.Control); 
}, true); 

I "undefined undefined" und "Prozess" in der Konsole erhalten. Gibt es ein Problem mit meiner $ watch-Implementierung für diese Fabrik?

Antwort

13

Sie hatten eine falsche Syntax. Es sollte return die Service-Variable MenuFactory.Control & auch gibt es keine Notwendigkeit von true am Ende, da Sie Objekt nicht haben, Objektgleichheit zu überprüfen.

-Code

$scope.$watch(function(){ 
    return MenuFactory.Control; 
}, function(newValue, oldValue){ 
    console.log(newValue + ' ' + oldValue); 
    console.log(MenuFactory.Control); 
}); 
+0

Vielen Dank, so einfach, dass ich es nicht sehen ... – Pierolain

+0

@Pierolain Glad you..Thanks zu helfen :) –

Verwandte Themen