问题标签 [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.
angularjs - 摘要完成后angularjs保存更改
我认为这可能是任何角度应用程序的常见用例。我只是在观察我范围内的一些对象,这些对象在几个摘要周期中发生了变化。在消化它们(通过数据绑定更改它们的值)完成后,我想将它们保存到数据库中。
A. 现在,使用当前的解决方案,我看到以下问题:
在 $timeout() 中运行保存 - 如何确保只调用一次保存
在 $scope.$evalAsync 中运行自定义函数 - 如何找出已更改的内容
当然,这两个问题都有解决方案,但我所知道的没有一个对我来说似乎很优雅。
问题是:这个问题最优雅的解决方案是什么?
B. 特别是,最佳实践是什么?
确保 save 在摘要循环中只调用一次
在最后一次摘要后发现对象是脏的
angularjs - AngularJS:为什么以及何时需要调用 $timeout?
我创建了一个confirmationDialogHeader
这样使用的指令:
单击按钮时,应该打开一个确认对话框,如果用户确认,它应该调用deleteItem($index)
并关闭对话框。
我的问题是最后一点:关闭对话框。
这是控制器(CoffeeScript):
这是指令:
如您所见,对话框在完成后并没有关闭并被执行。deleteItem()
$scope.confirmationDialog = off
有趣的是,如果$scope.items.splice(index, 1)
用 包裹$timeout
,对话框会正确关闭!
为什么$timeout
这里需要这种包装?
是否有关于我们何时应该用 包装代码的指导方针$timeout
?
angularjs - AngularJS 中的 $evalAsync 和 $timeout 有什么区别?
我已经使用 AngularJS 一段时间了,并且发现需要每隔一段时间使用一次$timeout (似乎通常是初始化一个 jQuery 插件)。
最近,我一直在尝试更好更深入地了解摘要循环,结果发现了$evalAsync函数。
似乎该函数会产生与 类似的结果$timeout
,只是您不要给它延迟。每次我使用$timeout
它的延迟都是0,所以现在我想知道我是否应该使用它$evalAsync
。
两者之间有什么根本区别吗?您会使用哪种情况?我想更好地了解何时使用哪个。
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?
angularjs - AngularJS 似乎不能为 $timeout 采取可变持续时间
我正在尝试在控制器中实现一个功能,该功能将负责向用户显示各种通知。
问题是我希望持续时间成为一个函数参数,但这似乎不起作用。
怎么来的?。
我怎样才能解决这个问题?。
angularjs - 将对象传递给 $timeout
我需要做一些特别的事情来访问 $timeout 函数中的对象吗?
当我尝试在 $timeout 函数中访问它时,我收到错误消息说路由未定义,但在 $timeout 函数(控制台日志所在的位置)之外,它会记录对象并且其中的所有内容都符合预期:
angularjs-timeout - 当窗口不在焦点时,$timeout 不会触发?
作为学习 AngularJS 的一部分,我决定使用它重写 Cookie Clicker。我设置了一个控制器,它具有(除其他外)$scope.Cookies
,$scope.CPS
(表示每秒的 cookie)和一个像这样的更新函数:
虽然我将标签放在前面和中间,但 Cookie 计数正确增加。我发现如果我正在查看不同的选项卡,那么这不会更新。当切换回我的选项卡时,它会从上次中断的地方继续。我已经通过将 Cookie 计数放在标题栏中并确认它停止来对此进行了测试。编辑:它似乎每分钟运行 1 次,而不是每秒运行 100 次。
我该怎么做才能确保超时继续以预期的时间间隔触发?
angularjs - AngularJS - 更改跟踪
我是 AngularJS 的新手。我正在考虑使用该$timeout
服务。$timeout
我已经读过使用JavaScriptsetTimeout
函数的原因之一是因为在调用$scope
之前不会在 UI 中更新对变量的更改$scope.$apply
。虽然就是这个词,但我无法用实际代码确认这一点。我写了以下内容:
索引.html
myController.js
在此代码示例中,对变量的更改会$scope
在 UI 中更新。我试图在代码中查看一个场景,其中通过setTimeout
函数进行的更改在调用之前不会更新 UI $scope.$apply
。我是不是误会了?或者是对 AngularJS 框架进行了更改,导致原始断言过时。
angularjs - 为什么我必须使用 $timeout 来更新 Angular 中的变量?
我在指令中有一个指令。在最深的指令中,我有这个:
指令 B:
在该指令之上的指令中,我有这个:
指令 A:
问题是,当我在指令 B 中省略timeout
调用时,控制台会记录“旧”值,但是当我使用timeout
调用时,一切都按预期工作。所以我的问题是,为什么我需要在timeout
这里使用?
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