问题标签 [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 - 你能重复使用 $scope.$watch
我找到了一些我想复制/粘贴并在两个控制器中使用的代码。它注视着一些东西。
而不是复制/粘贴,我想把它放在一个服务中并使用来自两个控制器的服务,如下所示:
现在,如果我这样做,它不会知道是什么$scope
,对吧?(根据一些阅读,无论如何它不会让我这样做。)
不过,我想说,如果你有这项服务,你就会得到这只手表。
有一个提示我可以这样做:Passing current scope to an AngularJS Service
所以我拿了他的例子,修复了它,scope.watch 在那里工作,但现在我不能在手表内设置其他范围变量。我只是不知道足够的javascript来做到这一点,但我很接近。我真的认为它可以使用正确的语法......
这个片段的关键特性是作用域是不同的作用域。它不像单例。
javascript - scope.$watch 不会在变量更改时触发
我在下面有以下代码片段。我遇到的问题是,只要 modal.isOpen 的值设置为 true,$watch 语句就不会触发。我试图避免使用 scope.$apply。我在这里做错了什么......
Angular 指令中的内部链接函数:
javascript - 更改值时AngularJS'$ watch'不会触发
我有一个必须以横向查看的网络应用程序。
为此,我创建了一个检查innerWidth
and的函数,innderHeight
如果宽度大于高度,那么快乐的日子。这在我加载页面时非常有效,但我也可以在resize
事件触发时检查方向。
所以我的代码流程是 -
- 在触发
resize
事件调用时$scope.getOrienttion()
- 计算当前方向并返回结果
- 监视
$scope.getOrienttion()
使用 a的值的变化watch
并更新 的值$scope.orientation
上面的第 1 步和第 2 步似乎工作正常,但我watch
从未检测到更改,$scope.getOrienttion()
并且仅在页面加载时触发。我一定是做错了什么,谁能帮我找出问题所在。
这是相关的AngularJS -
这是具有条件类集的 HTML,具体取决于$scope.orientation
(可能不相关,但以防万一)的值 -
angularjs - 指令范围.$watch 在控制器功能后调用
所以我有一个控制器和指令。我无法理解为什么我的控制器在我的指令之后运行。我已经搜索堆栈试图找到答案,但似乎大多数答案都是个案。
我的控制器最简单的形式就是这样
当我单击我的 ng-click 按钮时,我将转到 gotoLocation 范围函数并重新定义 $scope.initAddress。我的HTML如下:
现在当我查看我的指令时,我正在使用
现在,当我单击按钮时,它会运行到控制器和 $scopes.initAddress 并且不会点击 $scope.watch。当我再次点击它时,它首先点击 $scope.watch 然后它转到我的控制器并相应地更新。我怎样才能改变它,以便它先击中控制器,然后 $scope.watch 捕捉控制器中的变化。而不是先运行 $scope.watch 然后运行控制器。
谢谢您的帮助
javascript - 控制器中的 $watch 不会在将项目推入指令中的数组时触发
publish.selected_tags
我在指令和控制器之间有一个双向绑定变量。
我$watch
在控制器中保留了该变量:
我面临的问题是,当我将一个项目推入selected_tags
列表时,$watch
不会触发:
但是,当我分配 selected_tags
给一个数组$watch
时,控制器中的会被触发:
为什么会这样?$watch
如果我想推动一个元素,我怎样才能让我开火?
javascript - $watch 检查在 AngularJS 范围内定义的变量
我有以下指令来显示警报,所以我想在显示变量更改为星号运行超时时捕获我该怎么做?
仅第一次调用链接函数,但所有变量显示、消息和类型都未定义
指令代码
html指令代码
控制器示例
html代码
javascript - $watch 没有在 angularjs 的选项卡内调用?
在我的示例中,我创建了两个输入文本框,一个在选项卡外部,另一个在内部。对于两者,我都创建了一个手表功能。外面的工作正常,但选项卡内的监视功能不起作用。两个地方都有相同类型的编码,只是我不知道为什么一个工作而另一个不工作。
谁可以帮我这个事?
javascript - 检测谁更改模型(用户输入与控制器)
我有一个连接到模型的输入。此外,输入具有$watch
模型的指示。
模型有两种变化方式。
- 用户将在文本框中输入。
- 代码会改变它(不管是什么原因)
我的问题是
有没有办法在指令中找出谁更改了模型、用户交互或代码?
例子:
http://jsbin.com/vufawur/edit?html,js,输出
更新
示例 2:
javascript - $scope.$watch 只触发一次
我在我的控制器中设置了以下观察者:
embeds
这应该在更改时触发。我有以下函数来检查我的所有嵌入式推文和 Facebook 帖子是否已为页面加载。加载所有推文或 Facebook 帖子后,它会embeds
在一个$timeout
块内更新以触发摘要循环。
我遇到的问题是我的观察者只在我设置它时触发一次。我已经尝试绑定embeds
和$scope
/或观看embeds.twitter
,embeds.facebook
但观察者只触发一次。