繁体   English   中英

使用Angular监视工厂变量

[英]watch factory variable with Angular

我的单页应用程序有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变化factory.Control ,但我无法使其工作。

当我尝试这个:

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

我在控制台中得到“undefined undefined”和“Process”。 这个工厂的$ watch实现有什么问题吗?

你的语法错了。 它应该return服务变量MenuFactory.Control并且最后不需要true ,因为你没有对象检查对象相等性。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM