6

के साथ फैक्ट्री वैरिएबल देखें मेरे एकल पृष्ठ एप्लिकेशन में 2 नियंत्रक हैं: पहला मेरे मुख्य मेनू के लिए है और दूसरा दृश्य के लिए है। वे इस कारखाने के साथ डेटा साझाकोणीय

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; 
}); 

मैं factory.Control पर परिवर्तन देखना पसंद करेंगे, लेकिन मैं यह काम करता है नहीं कर सकता।

जब मैं इस प्रयास करें:

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

मैं कंसोल में "अपरिभाषित अपरिभाषित" और "प्रक्रिया" मिलता है। क्या इस कारखाने के लिए मेरे $ घड़ी के कार्यान्वयन में कोई समस्या है?

उत्तर

13

आपके पास गलत वाक्यविन्यास था। यह return सेवा चर MenuFactory.Control & भी अंत में true की आवश्यकता नहीं है क्योंकि आपके पास ऑब्जेक्ट समानता की जांच करने के लिए ऑब्जेक्ट नहीं है।

कोड

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

धन्यवाद एक बहुत, इतना आसान है कि मैं यह नहीं देखा ... – Pierolain

+0

@Pierolain you..Thanks मदद करने के लिए खुशी है कि :) –