问题标签 [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 回答
365 浏览

javascript - 绑定到 AngularJS 中的函数时,幕后会发生什么

当您绑定到 AngularJS 中的函数时,谁能解释幕后发生的事情?它创造了什么样的手表?我有一种感觉,它会为构成返回值的每个属性创建两个手表(在下面的示例中)。但是我当然不确定这一点,但感觉像是我们不应该做的事情。

例如

JS

0 投票
1 回答
28 浏览

javascript - 函数范围与 AngularJS 手表混淆

我目前处于需要根据对象的属性创建一些手表的情况。

这些属性用于对依赖于相同变量/表达式的函数进行分组。

在循环中创建 $watch 函数时,似乎很好,但是当手表实际执行时,只有最后一个属性保留在函数范围内。这意味着对于所有 $watches(评估不同的表达式),执行的函数是相同的。

现在,如果我的 obj 变量如下所示:

然后函数 evaluateDependentExpressions 在 prop = 'Person.Age' 的值处被调用两次。

非常感谢如何解决功能范围问题的任何帮助。

笨拙

0 投票
2 回答
243 浏览

javascript - 使用手表 Angularjs 隐藏自动完成项

我正在尝试使用 $scope.watch 进行自动完成,它运行良好,但是当我选择一个选项时,在项目中单击时,它会输入,但项目不会隐藏,因为当我把它放在输入手表重新激活...

当我选择其中一项时,我不知道如何隐藏这些项目。

任何帮助..

0 投票
1 回答
863 浏览

javascript - AngularJs在值更改$watch时对隐藏输入调用函数

我想使用 $watch 以便在每次更改这 3 个值之一时触发一个函数:

html:

我刚开始有角度,我想使用 $watch 来触发一个功能。每次我使用以下可拖动功能拖动一个 div 时,这些值都会更改:

我从这个开始,但我认为这是不对的,因为如果我移动一个 div 我将调用该函数的 3 次?此外,我不知道是否可以在隐藏输入的情况下使用它。谢谢!

更新:回答小提琴我只是在拖动结束时添加一个函数

jsfiddle.net/5e7zbn5z/1/

0 投票
0 回答
37 浏览

html - Angularjs正确使用工厂

我想知道你能不能帮忙。我有下面的代码,它在发出 http 请求之前设置了超时延迟。手表绑定了一个输入框。这目前在我的控制器中,并且可以正常工作。

现在我希望它作为一个工厂/服务来调用,而不是在我的控制器中列出它。

然后我做了这个...

不确定返回是否正确,因为之前的返回标记了一个 http null 错误。

因此,为了使用它,我在控制器中对以下代码进行了一些变体。

但我没有运气,它拒绝渲染。任何人都可以帮忙吗?

0 投票
1 回答
1407 浏览

angularjs - 单元测试 angularjs 指令,监视元素高度

我打算使用茉莉花对角度指令进行单元测试。我的指令看起来像这样

我的单元测试用例如下

代码工作正常。但是单元测试失败了。watch 函数被调用,但是 watch 中的 element[0].offsetHeight 总是返回 0。我们如何更新元素以便 watch 可以观察到新的高度。有没有办法甚至测试这个,因为我们这里并没有真正的 DOM。请指导我需要通过单元测试完成的更改。

0 投票
1 回答
38 浏览

javascript - 当 Angular 的 childScope 发生变化时,如何更新 parentScope 数组?

我有一个带有嵌套子控制器的主控制器

在我的主控制器中,我尝试创建一个主范围变量来存储搜索结果。

然后我尝试$scope.results在我的子控制器中更新主控制器的变量。

我的$watch函数没有被调用,我相信这是因为$scope.results没有被更新。我尝试过使用这三种类型的$watch函数,如$scope.watch depths部分下的Angular Docs所示。我阅读了这篇关于为范围切换到原型继承样式的文章,但我不确定这是解决我的问题的最佳方法,因为我不确定我是否走在正确的道路上。也许我应该使用事件发射器/广播器来实现我想要的效果?

如何更新的父范围 ( )results中的变量,以便我可以让 的兄弟姐妹访问它?searchControllermainControllersearchController

编辑/解决所以,这真的很奇怪,如果你能解释为什么会这样,金星给你。

这是代码不起作用时的 mainController :

这是代码正常工作时的mainController

为什么...

0 投票
1 回答
466 浏览

javascript - Angularjs:为什么 1 个绑定有 3 个观察者?

请看下面给出的截图

在此处输入图像描述

正如您在上面的屏幕截图中看到的那样,单个绑定有 #3 个观察者。

谁能详细说明为什么会这样?

PS:我正在使用 AngularJS Batarang 来检查性能。

0 投票
1 回答
891 浏览

angularjs - 如何使用 $watch 更改表中的列值

在我的项目中 - 我在一个表格中有两列。你可以在下图中看到。 在此处输入图像描述

我想要的是——在“非接收数量”列中,如果我更改一些值,它将相应地影响“订单数量”列。例如,在第一行——非接收数量为 4,如果我将其减少到 3订单数量将从 7 变为 6。如果我将非接收数量从 4 增加到 5,那么订单数量将从 7 变为 8。 我如何使用 angularjs $watch 做到这一点? 我的代码: 在我的 html 中——

在控制器数据中输入 prodDetails--

我想做什么/类似的事情--

0 投票
1 回答
75 浏览

angularjs - $scope.watch 在两个不同的角度页面之间不起作用

下面的代码在具有不同控制器的一页内工作,但是当我将值从一页传递到另一页时,scope.watch 不起作用。你怎么能那样做?下面是我的代码。