问题标签 [angularjs-watch]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
657 浏览

javascript - 在angularjs中动态地将值添加到WatchGroup

我的 Angular 应用程序中有一个按钮,它将动态地向我的应用程序添加一个输入元素。我想将模型附加到此元素并将其放入监视组以跟踪任何更改。如果用户添加多个输入元素,我想在监视组中添加所有这些模型并跟踪哪个元素改变了它的值。我怎样才能做到这一点?

0 投票
1 回答
286 浏览

ruby-on-rails - 使用 angularjs $watch 和 $interval 的消息传递应用程序

我正在尝试将消息添加到具有 rails 后端的 angular 应用程序中。为了让我的消息传递感觉“实时”,我使用 $interval 指令来调用我的服务器并每 5 秒获取两个用户之间的对话。我还使用 $watch 来查看我的消息,看看对象是否有变化,如果有,它将显示新的对话。

代码:

有人可以向我解释为什么我需要使用 websocket 而不是这种方法吗?另外,如果我正在做的是一个坏主意,您能否解释一下为什么以及什么是更好的方法。

请记住,我已经有用户进行对话,并且解决方案可以容纳我现有的对话。

0 投票
1 回答
2006 浏览

angularjs - 在 angularJs 中:在字符串变量上设置 $watch 和在 Object 的键上设置 $watch 有什么不同?

在 angularJs 中:在字符串变量上设置 $watch 和在 Object 的键上设置 $watch 有什么不同?

详细场景如下:

所以,我的问题是 "$scope.$watch('activedMenu.name', function () {...})" 与 "$scope.$watch('selectedMenuName', function () {.. .})”?任何帮助将不胜感激!

(我认为这两种设置 $watch 的方法是等价的,我参考了范围开发指南!https://docs.angularjs.org/guide/scope

0 投票
1 回答
249 浏览

angularjs - 为同一个变量重复 $watch 是否有成本?

我有一些 textAngular 代码,我在其中多次观察范围内的变量?有没有一种简单的方法可以只创建一次这个手表,或者我可以检测到它存在吗???

代码部分是:

每次单击此按钮时,都会执行此操作。这个 $watch 导致多个实例被创建并继续存在。

根据下面“npe”的有用评论,我修改了代码以防止手表被多次创建。

新代码:

感谢您的洞察力!

0 投票
2 回答
34825 浏览

angularjs - Watch form model for changes

Assuming a given form such as <form name="myForm">, it's easy enough to watch for validity, error, dirty state, etc. using a simple watch:

However, there doesn't appear to be an easy way to watch if any given input in this form has changed. Deep watching like so, does not work:

$watchCollection only goes one level deep, which means I would have to create a new watch for every input. Not ideal.

What is an elegant way to watch a form for changes on any input without having to resort to multiple watches, or placing ng-change on each input?

0 投票
0 回答
762 浏览

hover - AngularJS 查找谁更改了 $watch 监视的对象

我正在使用 Angular-Bootstrap Carousel 指令并在其之上进行一些更改。旋转木马有ng-repeat幻灯片。

我试图通过悬停右/左控件而不是单击来进入下一张/上一张幻灯片。并通过更改状态来实现这一点object.active(以前为假 - 新为真)

无论如何,经过几轮,我所有的对象都是active=false,而旋转木马什么也没有。在调试数组和$watch每个对象之后,我发现当它出错时,是因为指令以某种方式改变了active=false我不希望它发生的情况。

长话短说:我能以某种方式获取我正在使用的范围内的对象的调用堆栈$watch吗?

例如,我的手表代码如下:

0 投票
2 回答
494 浏览

arrays - Angular $watch 不适用于数组和数据集合

我需要注意对象列表中的更改,并对更改执行一些操作,但是,Angular$watch仅触发一次,当列表首次创建并将初始对象推入其中时:

0 投票
3 回答
91 浏览

angularjs - 如何从数学表达式和另一个范围变量更新范围变量?

不确定我是否清楚地说明了我的问题,但我真正想要的是更新min-width其中ng-style的每个<li>ng-repeat等于100 / array.length.

我的第一个解决方案很简单:

<li ng-style="{'min-width': (100 / array.length) + '%'}">

这可行,但我不喜欢视图中的数学表达式,我宁愿将它放在控制器中。类似的东西:

$scope.percentage = (100 / $scope.array.length) + '%'

<li ng-style="{'min-width': percentage}"

这种方法的问题在于,当数组内容改变时,percentage并没有改变。我可以在那里添加$watchCollectionarray更新percentage,但感觉不对,就像我错过了更好的方法一样。我是吗?

如果不是,您更喜欢哪种解决方案?视图中的数学表达式,或$watchCollection

0 投票
1 回答
208 浏览

javascript - angularJS 为什么 $scope.$watch 不能工作?

我想添加一个 $watch 来观察 $scope.data 是否更改,但它不能工作

[ http://jsbin.com/biqesojaqu/1/edit?html,js,控制台,输出][1]

应用程序.html

应用程序.js

当我单击按钮时,我认为控制台会输出has chenged,但没什么,请告诉我为什么,在 JSbin 中帮助我很好

0 投票
1 回答
10632 浏览

javascript - 使用 Angular 观察工厂变量

我的单页应用程序有 2 个控制器:第一个用于我的主菜单,第二个用于视图。他们与这家工厂共享数据

我想看变化factory.Control,但我不能让它工作。

当我尝试这个时:

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