问题标签 [angularjs-digest]
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.
javascript - Angular.js 中是否有任何事件“在 $scope 摘要完成”或“视图刷新”?
我正在对视图中用于生成列表的数据执行 AJAX 请求。我需要知道 $scope 何时更新以及在收到成功响应后何时呈现视图,以便我可以为列表动态设置一些初始值和一些事件处理程序。
我目前正在使用以下代码,但它没有起到作用:
在我调用 setInitialSliderValues() 时,视图仍未刷新。
当我尝试使用以下内容时,我收到错误“$digest already in progress”:
如果不使用计时器来检查我期望的更改,我如何才能绝对确定对数据的更改已在页面上生效。
javascript - 如何从另一个控制器更新控制器的 ng-repeat 模型?
我有两个<div>
带有自己的控制器。第一个 div 有一个ng-model="listEntries"
. listEntries
我在 this<div>
的控制器中初始化。
html
我将 传递$scope
给getList()
并将$scope.listEntries
值设置为serviceForFirst
。然后我使用listEntries
as ng-model
。
这是我的第二个控制器和与之关联的服务。我打算在listAll
每次调用addNew()
. 这就是我正在尝试的方式。
用于此的 HTML<div>
但是该列表没有在第一个更新<div>
。$scope.$apply()
如果我在getList()
设置之前尝试做,$scope.listEntries
那么我会得到 $digest 已经在进行中的错误。
当我这样做时console.log()
,我看到每个服务中的适当函数都被调用但列表没有被更新。
我应该如何更新列表?
javascript - 向按钮发送点击事件时,$apply 已经在进行中了吗?
我的页面上有一个按钮,页面上有一个 id="viewQuestions":
我的代码正在检查这样的键命中:
在控制器中:
当我运行代码并单击 ENTER 时,我收到此错误:
谁能给我这方面的建议。我只想模拟按下 ENTER 键时单击按钮。我确实尝试过使用表单的解决方案,但它不能满足我相当复杂的需求。
javascript - 为什么我的自定义过滤器会导致无限消化?
我创建了一个自定义过滤器,将键值对数组分解为一个对象,该对象按特定属性的第一个字母对值进行分组。例如
输入:
[{foo: 'bar'}, {faz: 'baz'}, {boo: 'foo'}]
输出:
{f: [{foo: bar}, {faz: baz}], b: [{boo, foo}]}
然而,这个过滤器似乎在 Angular 中导致了一个无限的消化错误。
我不知道为什么。从我发现的情况来看,这通常是由于在过滤器中修改了您的模型,从而重新触发了 ng-repeat,但是我认为我没有这样做。
angularjs - 如何检测 $scope.$watch 中删除的项目?
有什么方法可以通过 $scope.$watch 检测删除或添加的项目吗?
请看下面的例子:
谢谢
angularjs - 导致无限摘要循环的指令
以下指令导致无限摘要循环,我不知道为什么。关于如何重新编写代码的任何想法?
谢谢!
javascript - 在没有摘要循环的情况下解决承诺
AngularJS 的 Promise 似乎与摘要循环相关联,例如,在运行摘要循环之前不会调用成功/错误回调。这意味着任何使用 Promise 的东西,例如$http
手动创建的 Promise,也需要触发一个摘要循环,以使回调运行。
是否可以在 Angular 中使用 Promise,而根本不运行摘要循环?我意识到您可以使用$applyAsync
,它将摘要周期安排在稍后的时间,但我希望根本不运行摘要周期,并且仍然then
运行回调。
从本质上讲,我正在尝试研究如何从一个应用程序中尽可能多地压缩性能,该应用程序将使用相当多的异步行为,这些行为需要解决 Promise,但不一定需要运行摘要循环。
javascript - 10 digest() 迭代在登录过程中达到错误
这是我在我的应用程序中实现登录过程的代码。应用程序必须验证服务器设置的 cookie 并通过将用户重定向到画布状态来继续登录过程。我的问题是我收到上述错误。实际上它可以成功登录,但我想摆脱这个错误。我想错误应该在 $stateChangeStart 但我不知道如何解决它。任何想法?
angularjs - Angular:多个指令一起讨论。$apply/$emit/$broadcast 混淆
所以我在控制器中实例化了两个指令(时间轴和显示器)。
当时间轴上发生点击时,它$emit
是TimelineClicked
控制器的事件。
控制器作为Displayer 的事件$on('TimelineClicked', cb)
。$broadcast
UpdateDisplay
我这里有两种情况:
onUpdateDisplay
可以在一个$digest
周期内调用,例如在加载时,它会更新 UITimelineClicked
但是当它显然来自它时,它没有被$digest
编辑。
因此用这样的包装方法$apply
:
$apply already in progress error
将在情况 1 而不是 2 中触发when 。
我不考虑做一些if ($scope.$root.$$phase != '$apply' && $scope.$root.$$phase != '$digest')
太脏的事情恕我直言。
- 两个指令应该如何一起讨论并确保它们的范围始终是最新的?
- $apply 循环是否等待事件回调完成?
- 我应该把
apply
其他地方(周围$on('TimelineClicked', cb)
)包装起来吗?
我尝试了几种配置都没有成功...
javascript - ondragstart, ondragover,onstart - $scope 未定义
我的任务是使用 angular 处理删除的文本。$scope is not defined
我在拖放事件中不断收到此错误。知道如何解决这个问题吗?
我已经研究了角度拖放库。他们不允许拖放简单的文本。他们中的大多数都使用列表。让我知道是否有适合此任务的
这是plunker:
[ http://plnkr.co/edit/egKL13hsHka6RiX4UfSS?p=preview
][1]
这是控制器: