【问题标题】:watch factory variable with Angular使用 Angular 观察工厂变量
【发布时间】:2015-08-16 06:08:44
【问题描述】:

我的单页应用程序有 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);

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

【问题讨论】:

    标签: javascript angularjs angularjs-scope angularjs-factory angularjs-watch


    【解决方案1】:

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

    代码

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

    【讨论】:

    • @Pierolain 很高兴为您提供帮助..谢谢 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多