问题标签 [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 投票
1 回答
103 浏览

angularjs - $rootsScope.$watch 没有被触发

我在服务中设置了一个手表(下面的代码片段),我无法弄清楚为什么它没有被触发。当对象更改时,控制器中设置的类似手表(使用 $Scope.$watch)会被触发。

我错过了什么?

这段代码确实被触发了......

0 投票
0 回答
93 浏览

angularjs - angularjs 性能:多次观看相同的表达式/变量

由于我的代码模式,我必须一次又一次地将手表应用于同一个变量。这是否会导致任何性能问题或内存泄漏。我的代码中有两个手表,如果第一个手表有任何变化,它会调用一个函数,将手表再次应用于同一个变量。我的代码如下所示,当添加一个名为 .sameHeight 的新类时,watch 再次应用于实际高度。我想知道这是否会导致任何内存泄漏或性能问题..如果是的话如何解决这个..

0 投票
1 回答
248 浏览

angularjs - AngularJS - 更新手表内的另一个值

我正在尝试更新 nav.html 中的值

{{login.showOption.show}}指的是这个控制器

选项服务

当 hasAccess 的值发生变化时,我希望 nav.html 也显示或不显示

但问题是什么都没有发生。我想是因为我在手表里面,我需要使用 apply 或 digest,但我不知道怎么做!

这是代码的链接

代码在这里: https ://github.com/cash1981/civilization-boardgame/blob/feature/options/civilization-web/app/scripts/controllers/GameController.js

https://github.com/cash1981/civilization-boardgame/blob/feature/options/civilization-web/app/scripts/controllers/LoginController.js

https://github.com/cash1981/civilization-boardgame/blob/feature/options/civilization-web/app/views/nav.html

0 投票
3 回答
1099 浏览

javascript - 仅在用户第一次输入表单输入时运行功能

这应该是直截了当的,但尚未找到解决方案。

我有input一个form. 我想检测用户何时与输入交互并运行一次 javascript 函数(如果有)。

我一直在考虑使用 a$watch来检测input元素是否具有类ng-dirty,如果有,则运行 js 函数并取消绑定手表。

有没有更好的办法?如果你能提供一个例子,那就太好了。

0 投票
1 回答
41 浏览

angularjs - AngularJS 本地队列,用于延迟查看更新

我有一个显示条目列表的视图。我有一项服务可以将新条目推送到我的视图中。但是如果用户正在添加一个新条目或编辑一个条目,我想推迟推送新的更新,所以用户看不到视图跳转。

我目前的想法是有一个本地队列。添加 $watch 以查看用户是否正在编辑条目。来自该服务的任何新更新,我都会将其推送到队列中。当 $watch 说用户没有编辑时,推送更新。

这一切看起来都很好,但可能会变得非常复杂。我是 Angular 的新手,想看看是否有 Angular 提供的东西,或者我可以在这里使用更简单的解决方案。

任何帮助表示赞赏。

谢谢!

0 投票
0 回答
117 浏览

angularjs - 为什么 $watch 在我的指令中不起作用?

我的指令定义为:

当我更改所选国家/地区时,$watch无法正常工作,为什么?范围工作正常,因为 ng-show 工作正常。

我确信我缺少一些简单的东西,有人可以解释一下吗?

0 投票
1 回答
142 浏览

javascript - $watchcollection 不适用于模型属性

我正在使用 $watchcollection 来观察我的模型的变化。我像这样初始化我的模型

$watchcollection用来检查模型更改

问题是,仅在 update 时不会触发feature.additional
有没有人有任何解决方法,或者如果有问题请告诉我。

0 投票
2 回答
4186 浏览

angularjs - 如果模型不为空,AngularJS 监视模型值

这里简单的问题。我有这只手表:

团队模型是作为一个承诺从数据库中提取的(因此是数据),因此当手表第一次触发时self.model.team尚未设置,因此它为空。我怎样才能让我的手表要么等到它被设置好,要么在手表的返回功能中添加一个检查?

0 投票
1 回答
971 浏览

ajax - Angular 的 $http.post 不起作用,它的 $http... 也不起作用,但 jQuerys ajax 起作用。为什么?

出于某种原因:

和/或这个:

工作正常,但这:

惨败

“选项我的网址(匿名函数)@angular.js:9866sendReq @angular.js:9667$get.serverRequest @angular.js:9383processQueue @angular.js:13248(匿名函数)@angular.js:13264$get.Scope .$eval @ angular.js:14466$get.Scope.$digest @ angular.js:14282$get.Scope.$apply @ angular.js:14571(匿名函数) @ angular.js:21571jQuery.event.dispatch @ jquery.js:4430jQuery.event.add.elemData.handle@jquery.js:4116

(索引):1 XMLHttpRequest 无法加载我的网址。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许访问 源“ http://localhost:5000 ”。响应的 HTTP 状态代码为 404。”


它们是相同的网址。重量级 我偷偷怀疑 jquery 中的“crossDomain:true”选项是 jquery 工作的原因,但如果是这样的话,那么问题是:

我如何用角度做到这一点?

-- 使用 jquery 的默认 ajax 方法时,范围不会随结果更新,但我知道正在分配数据,因为我正在将其注销,如果我再次提交请求,范围会随着第二个更新价值。

第二个问题-为什么我的视图没有随结果更新?


更新:

失败的原因与我从服务器返回的响应无关,问题是 Angular 正在将此 POST 请求转换为 OPTIONS 请求:(取自 google chromes 的 xhr 工具:)

进一步检查显示:

这不是它应该做的,因为我在我传递给 $http 的 req 对象中特别说这是一个 POST 请求。

...

那么我如何制作有角度的......不要那样做?

还有——为什么要这么做?

0 投票
2 回答
207 浏览

javascript - watchcollection 吞下被监视的属性

有两个属性selCountrysearchText。有一个监视这两个变量的手表。第一个绑定到一个选择元素,另一个是输入文本字段。

我期望的行为是:如果我更改下拉值,文本框应该清除,反之亦然。但是,由于我编写手表的方式,第一次按键(与选择元素交互后)会吞下按键。

必须有某种角度方式告诉 angular 不要处理发生在这些变量上的变量变化;但仍然允许他们的更改传播到视图......?

普朗克