Javascript 带角度传感器的手表工厂变量

Javascript 带角度传感器的手表工厂变量,javascript,angularjs,angularjs-scope,angularjs-factory,angularjs-watch,Javascript,Angularjs,Angularjs Scope,Angularjs Factory,Angularjs Watch,我的单页应用程序有两个控制器:第一个用于主菜单,第二个用于视图。他们与这家工厂共享数据 myApp.factory('MenuFactory', function(){ var factory = { Monitor: "doneJob", Control: "", Report: "", Display: "", setMonitor: function(value){ factory.Monitor = value; },

我的单页应用程序有两个控制器:第一个用于主菜单,第二个用于视图。他们与这家工厂共享数据

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

我在控制台中得到“未定义”和“进程”。此工厂的$watch实现有任何问题吗?

您的语法错误。它应该
返回
服务变量
MenuFactory.Control
&而且最后不需要
true
,因为您没有对象来检查对象是否相等

代码

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

@Pierolain很高兴帮助你……谢谢:)