问题标签 [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.
angularjs - $rootsScope.$watch 没有被触发
我在服务中设置了一个手表(下面的代码片段),我无法弄清楚为什么它没有被触发。当对象更改时,控制器中设置的类似手表(使用 $Scope.$watch)会被触发。
我错过了什么?
这段代码确实被触发了......
angularjs - angularjs 性能:多次观看相同的表达式/变量
由于我的代码模式,我必须一次又一次地将手表应用于同一个变量。这是否会导致任何性能问题或内存泄漏。我的代码中有两个手表,如果第一个手表有任何变化,它会调用一个函数,将手表再次应用于同一个变量。我的代码如下所示,当添加一个名为 .sameHeight 的新类时,watch 再次应用于实际高度。我想知道这是否会导致任何内存泄漏或性能问题..如果是的话如何解决这个..
angularjs - AngularJS - 更新手表内的另一个值
我正在尝试更新 nav.html 中的值
{{login.showOption.show}}
指的是这个控制器
选项服务
当 hasAccess 的值发生变化时,我希望 nav.html 也显示或不显示
但问题是什么都没有发生。我想是因为我在手表里面,我需要使用 apply 或 digest,但我不知道怎么做!
这是代码的链接
和
javascript - 仅在用户第一次输入表单输入时运行功能
这应该是直截了当的,但尚未找到解决方案。
我有input
一个form
. 我想检测用户何时与输入交互并运行一次 javascript 函数(如果有)。
我一直在考虑使用 a$watch
来检测input
元素是否具有类ng-dirty
,如果有,则运行 js 函数并取消绑定手表。
有没有更好的办法?如果你能提供一个例子,那就太好了。
angularjs - AngularJS 本地队列,用于延迟查看更新
我有一个显示条目列表的视图。我有一项服务可以将新条目推送到我的视图中。但是如果用户正在添加一个新条目或编辑一个条目,我想推迟推送新的更新,所以用户看不到视图跳转。
我目前的想法是有一个本地队列。添加 $watch 以查看用户是否正在编辑条目。来自该服务的任何新更新,我都会将其推送到队列中。当 $watch 说用户没有编辑时,推送更新。
这一切看起来都很好,但可能会变得非常复杂。我是 Angular 的新手,想看看是否有 Angular 提供的东西,或者我可以在这里使用更简单的解决方案。
任何帮助表示赞赏。
谢谢!
angularjs - 为什么 $watch 在我的指令中不起作用?
我的指令定义为:
当我更改所选国家/地区时,$watch
无法正常工作,为什么?范围工作正常,因为 ng-show 工作正常。
我确信我缺少一些简单的东西,有人可以解释一下吗?
javascript - $watchcollection 不适用于模型属性
我正在使用 $watchcollection 来观察我的模型的变化。我像这样初始化我的模型
我$watchcollection
用来检查模型更改
问题是,仅在 update 时不会触发feature.additional
。
有没有人有任何解决方法,或者如果有问题请告诉我。
angularjs - 如果模型不为空,AngularJS 监视模型值
这里简单的问题。我有这只手表:
团队模型是作为一个承诺从数据库中提取的(因此是数据),因此当手表第一次触发时self.model.team尚未设置,因此它为空。我怎样才能让我的手表要么等到它被设置好,要么在手表的返回功能中添加一个检查?
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 请求。
...
那么我如何制作有角度的......不要那样做?
还有——为什么要这么做?
javascript - watchcollection 吞下被监视的属性
有两个属性selCountry
和searchText
。有一个监视这两个变量的手表。第一个绑定到一个选择元素,另一个是输入文本字段。
我期望的行为是:如果我更改下拉值,文本框应该清除,反之亦然。但是,由于我编写手表的方式,第一次按键(与选择元素交互后)会吞下按键。
必须有某种角度方式告诉 angular 不要处理发生在这些变量上的变量变化;但仍然允许他们的更改传播到视图......?