首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >观察变量并更改它

观察变量并更改它
EN

Stack Overflow用户
提问于 2014-08-15 07:35:07
回答 5查看 69.1K关注 0票数 28

在AngularJS中,我有一个监视作用域变量的指令。当变量包含某些数据时,我需要稍微修改该变量。问题是,当我更改变量时,我的$watch再次被触发。所以我最终成了一个连续的循环。

代码语言:javascript
运行
复制
scope.$watch('someVar', function(newValue, oldValue) {
    console.log(newValue);
    scope.someVar = [Do something with someVar];
});

这再次触发$watch,这是有道理的。但我确实需要一种改变观察变量的方法。有办法这样做吗?

EN

Stack Overflow用户

发布于 2014-08-15 07:41:55

这就是肮脏检查的工作原理。每当$scope上的某物发生变化时,角度就会通过附加到范围的所有东西来旋转,并且它会一直这样做,直到没有更多的变化。

如果您想这样做,您必须确保您的$watch函数是幂等的。您必须同时查看newValueoldValue,并确定您是否已经在这个$digest循环中将这些更改应用于您的变量。如何做到这一点在一定程度上取决于您对someVar所做的更改。

一般来说,在手表函数中改变一个观察变量并不是一个好主意.

票数 2
EN
查看全部 5 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25322780

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档