gpt4 book ai didi

javascript - Angularjs watch 未触发

转载 作者:行者123 更新时间:2023-12-02 15:47:07 24 4
gpt4 key购买 nike

这个计划有三个要素。首先,在服务中,我有:

$scope.loaded = MySvc.loaded;
$scope.loaded = false;

然后,在导入这个服务的 Controller 中,我有一系列介绍性的东西。一旦 Controller 完成其异步工作,我需要触发指令中的事件,因此在 Controller 中,当触发器准备就绪时,我会这样做

MySvc.loaded = true;

然后在指令中,它也导入了服务,

$scope.loaded = MySvc.loaded;
$scope.$watch('loaded', function (newValue, oldValue) {

loaded 初始化为“false”时,该指令会触发,但当我将值更改为“true”时,什么也没有发生。 watch 根本不触发。为什么不?我该如何解决这个问题?

最佳答案

这是一种很好的做事方式,我认为它与 promise 正交(这确实非常有用)。您的问题来自于破坏您与作业创建的链接。相反,请尝试:

$scope.data = MySvc.data;

并附加到该内容上,例如MySvc.data.loaded = false。这样,data 变量就不会被重新分配,因此 Controller 和服务之间的链接保持不变。

然后,您可以通过将 true 作为第三个选项传递给 $watch 来观看 data.loaded 或将 data 作为集合观看。

关于javascript - Angularjs watch 未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32105962/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com