gpt4 book ai didi

javascript - 有没有办法使用 Angular 来观察一组不在范围内但在服务中的变量?

转载 作者:行者123 更新时间:2023-11-27 22:37:50 25 4
gpt4 key购买 nike

例如,给出来自服务的以下数据

myService.var1
myService.var2
myService.var3

通常您需要执行以下操作

    $scope.$watch(function(){
return myService.var1
}, function(newValue, oldValue) {
})

$scope.$watch(function(){
return myService.var2
}, function(newValue, oldValue) {
})

但我想一次性查看变量列表。

我尝试了以下方法,但每个方法都有自己的问题。

    // Max digest cycle iteration error
$scope.$watch(function(){
return {
var1: myService.var1,
var2: myService.var2
}
}, function(newValue, oldValue) {

})

    $scope.myVar1 = myService.var1
$scope.myVar2 = myService.var2
// this doesn't actually watch the service variable
$scope.$watchGroup(['myVar1', 'myVar2'], function(newValue, oldValue) {

})

有人能给我指个方向吗?

最佳答案

修复最大摘要。
发生这种情况是因为我们每次摘要迭代都会创建对象的新实例。
让我们修复它:

var watched = {
var1: myService.var1,
var2: myService.var2
};
$scope.$watch(function(){
return watched;
// return angular.toJson(watched); // serialized can be better
}, function(newValue, oldValue) {
});
<小时/>

您的$watchGroup将不起作用,因为您正在监视变量的副本,而不是原始变量。

通过以下修复,我们得到了之前的解决方案(几乎):

$scope.vars = {var1: myService.var1, var2: myService.var2};
$scope.$watchGroup(['vars'], function(newValue, oldValue) {
});

关于javascript - 有没有办法使用 Angular 来观察一组不在范围内但在服务中的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38966152/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com