问题标签 [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.
javascript - 在angularjs中动态地将值添加到WatchGroup
我的 Angular 应用程序中有一个按钮,它将动态地向我的应用程序添加一个输入元素。我想将模型附加到此元素并将其放入监视组以跟踪任何更改。如果用户添加多个输入元素,我想在监视组中添加所有这些模型并跟踪哪个元素改变了它的值。我怎样才能做到这一点?
ruby-on-rails - 使用 angularjs $watch 和 $interval 的消息传递应用程序
我正在尝试将消息添加到具有 rails 后端的 angular 应用程序中。为了让我的消息传递感觉“实时”,我使用 $interval 指令来调用我的服务器并每 5 秒获取两个用户之间的对话。我还使用 $watch 来查看我的消息,看看对象是否有变化,如果有,它将显示新的对话。
代码:
有人可以向我解释为什么我需要使用 websocket 而不是这种方法吗?另外,如果我正在做的是一个坏主意,您能否解释一下为什么以及什么是更好的方法。
请记住,我已经有用户进行对话,并且解决方案可以容纳我现有的对话。
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)
angularjs - 为同一个变量重复 $watch 是否有成本?
我有一些 textAngular 代码,我在其中多次观察范围内的变量?有没有一种简单的方法可以只创建一次这个手表,或者我可以检测到它存在吗???
代码部分是:
每次单击此按钮时,都会执行此操作。这个 $watch 导致多个实例被创建并继续存在。
根据下面“npe”的有用评论,我修改了代码以防止手表被多次创建。
新代码:
感谢您的洞察力!
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?
hover - AngularJS 查找谁更改了 $watch 监视的对象
我正在使用 Angular-Bootstrap Carousel 指令并在其之上进行一些更改。旋转木马有ng-repeat
幻灯片。
我试图通过悬停右/左控件而不是单击来进入下一张/上一张幻灯片。并通过更改状态来实现这一点object.active
(以前为假 - 新为真)
无论如何,经过几轮,我所有的对象都是active=false
,而旋转木马什么也没有。在调试数组和$watch
每个对象之后,我发现当它出错时,是因为指令以某种方式改变了active=false
我不希望它发生的情况。
长话短说:我能以某种方式获取我正在使用的范围内的对象的调用堆栈$watch
吗?
例如,我的手表代码如下:
arrays - Angular $watch 不适用于数组和数据集合
我需要注意对象列表中的更改,并对更改执行一些操作,但是,Angular$watch
仅触发一次,当列表首次创建并将初始对象推入其中时:
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
并没有改变。我可以在那里添加$watchCollection
并array
更新percentage
,但感觉不对,就像我错过了更好的方法一样。我是吗?
如果不是,您更喜欢哪种解决方案?视图中的数学表达式,或$watchCollection
?
javascript - angularJS 为什么 $scope.$watch 不能工作?
我想添加一个 $watch 来观察 $scope.data 是否更改,但它不能工作
[ http://jsbin.com/biqesojaqu/1/edit?html,js,控制台,输出][1]
应用程序.html
应用程序.js
当我单击按钮时,我认为控制台会输出has chenged
,但没什么,请告诉我为什么,在 JSbin 中帮助我很好
javascript - 使用 Angular 观察工厂变量
我的单页应用程序有 2 个控制器:第一个用于我的主菜单,第二个用于视图。他们与这家工厂共享数据
我想看变化factory.Control
,但我不能让它工作。
当我尝试这个时:
我在控制台中得到“未定义的未定义”和“进程”。我对这个工厂的 $watch 实施有什么问题吗?