使用 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
上观看更改,但我做不到。
当我尝试这个时:
$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);
});
我的单页应用程序有 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);
我在控制台中得到 "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);
});