问题标签 [angularjs-timeout]

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 回答
1659 浏览

angularjs - 摘要完成后angularjs保存更改

我认为这可能是任何角度应用程序的常见用例。我只是在观察我范围内的一些对象,这些对象在几个摘要周期中发生了变化。在消化它们(通过数据绑定更改它们的值)完成后,我想将它们保存到数据库中。

A. 现在,使用当前的解决方案,我看到以下问题:

  1. 在 $timeout() 中运行保存 - 如何确保只调用一次保存

  2. 在 $scope.$evalAsync 中运行自定义函数 - 如何找出已更改的内容

当然,这两个问题都有解决方案,但我所知道的没有一个对我来说似乎很优雅。

问题是:这个问题最优雅的解决方案是什么?

B. 特别是,最佳实践是什么?

  1. 确保 save 在摘要循环中只调用一次

  2. 在最后一次摘要后发现对象是脏的

0 投票
1 回答
2183 浏览

angularjs - AngularJS:为什么以及何时需要调用 $timeout?

现场演示

我创建了一个confirmationDialogHeader这样使用的指令:

单击按钮时,应该打开一个确认对话框,如果用户确认,它应该调用deleteItem($index)并关闭对话框。

我的问题是最后一点:关闭对话框

这是控制器(CoffeeScript):

这是指令:

如您所见,对话框在完成后并没有关闭并被执行。deleteItem()$scope.confirmationDialog = off

有趣的是,如果$scope.items.splice(index, 1)用 包裹$timeout,对话框正确关闭!

为什么$timeout这里需要这种包装?

是否有关于我们何时应该用 包装代码的指导方针$timeout


该指令的工作版本使用$dialog.


0 投票
2 回答
70598 浏览

angularjs - AngularJS 中的 $evalAsync 和 $timeout 有什么区别?

我已经使用 AngularJS 一段时间了,并且发现需要每隔一段时间使用一次$timeout (似乎通常是初始化一个 jQuery 插件)。

最近,我一直在尝试更好更深入地了解摘要循环,结果发现了$evalAsync函数。

似乎该函数会产生与 类似的结果$timeout,只是您不要给它延迟。每次我使用$timeout它的延迟都是0,所以现在我想知道我是否应该使用它$evalAsync

两者之间有什么根本区别吗?您会使用哪种情况?我想更好地了解何时使用哪个。

0 投票
1 回答
6480 浏览

angularjs - What's the right way to wait for ng-init values to be set?

I have an "ng-init" directive in my HTML that initializes the value of "data.id" in my Angular.js data model. Let's say for now that I can't change how this works.

Now, I want to make an HTTP request as soon as my page loads, where the URL will depend on this data.id value. So far, the following seems to work:

However, using a timer with a timeout of zero seems clunky. (And if I omit the $timeout code and simply call $http.get directly, then $scope.data.id is, of course, undefined).

Is there a better way to wait until ng-init has executed before issuing the $http request? And is the timeout-based code above guaranteed to work in all cases / on all browsers, etc?

0 投票
1 回答
600 浏览

angularjs - AngularJS 似乎不能为 $timeout 采取可变持续时间

我正在尝试在控制器中实现一个功能,该功能将负责向用户显示各种通知。

问题是我希望持续时间成为一个函数参数,但这似乎不起作用。

怎么来的?。

我怎样才能解决这个问题?。

0 投票
1 回答
3108 浏览

angularjs - 将对象传递给 $timeout

我需要做一些特别的事情来访问 $timeout 函数中的对象吗?

当我尝试在 $timeout 函数中访问它时,我收到错误消息说路由未定义,但在 $timeout 函数(控制台日志所在的位置)之外,它会记录对象并且其中的所有内容都符合预期:

0 投票
0 回答
211 浏览

angularjs-timeout - 当窗口不在焦点时,$timeout 不会触发?

作为学习 AngularJS 的一部分,我决定使用它重写 Cookie Clicker。我设置了一个控制器,它具有(除其他外)$scope.Cookies$scope.CPS(表示每秒的 cookie)和一个像这样的更新函数:

虽然我将标签放在前面和中间,但 Cookie 计数正确增加。我发现如果我正在查看不同的选项卡,那么这不会更新。当切换回我的选项卡时,它会从上次中断的地方继续。我已经通过将 Cookie 计数放在标题栏中并确认它停止来对此进行了测试。编辑:它似乎每分钟运行 1 次,而不是每秒运行 100 次。

我该怎么做才能确保超时继续以预期的时间间隔触发?

0 投票
1 回答
485 浏览

angularjs - AngularJS - 更改跟踪

我是 AngularJS 的新手。我正在考虑使用该$timeout服务。$timeout我已经读过使用JavaScriptsetTimeout函数的原因之一是因为在调用$scope之前不会在 UI 中更新对变量的更改$scope.$apply。虽然就是这个词,但我无法用实际代码确认这一点。我写了以下内容:

索引.html

myController.js

在此代码示例中,对变量的更改会$scope在 UI 中更新。我试图在代码中查看一个场景,其中通过setTimeout函数进行的更改在调用之前不会更新 UI $scope.$apply。我是不是误会了?或者是对 AngularJS 框架进行了更改,导致原始断言过时。

0 投票
0 回答
105 浏览

angularjs - 为什么我必须使用 $timeout 来更新 Angular 中的变量?

我在指令中有一个指令。在最深的指令中,我有这个:

指令 B:

在该指令之上的指令中,我有这个:

指令 A:

问题是,当我在指令 B 中省略timeout调用时,控制台会记录“旧”值,但是当我使用timeout调用时,一切都按预期工作。所以我的问题是,为什么我需要在timeout 这里使用?

0 投票
0 回答
529 浏览

angularjs - 在 $timeout 的 AngularJS 上使用 mocha(无 e2e 测试)进行单元测试服务永远不会完成

我有一项服务需要通过 AJAX 调用数据库,这是对它的测试:

因错误而失败(因为done从未调用过 mocha):

我打电话不打电话$timeout.flush都没关系。当我在调用$timeout.flush后调用时(因为 AJAX 尚未返回),它会引发错误并记录到 console No deferred tasks to flush

我已经加载angular-mocks.js了我的karma.conf.js并且它们是相同的版本(角度和模拟,使用保持最新bower update)。

在 CEP 服务内部,调用 ajax 后,回调在 a 内部执行,$timeout(-> cb(data))并且无论出于何种原因都不会调用。我难住了。

我在 SO 中看到的所有问题都与 e2e、jasmine 和使用$httpBackend模拟的同步测试有关。我需要实际调用 PHP 脚本进行测试。另外,我已经设置了“代理”karma.conf.js

开发工具控制台显示请求正在完成但它正在停止$timeout