问题标签 [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.

0 投票
2 回答
3406 浏览

javascript - Angular.js 中是否有任何事件“在 $scope 摘要完成”或“视图刷新”?

我正在对视图中用于生成列表的数据执行 AJAX 请求。我需要知道 $scope 何时更新以及在收到成功响应后何时呈现视图,以便我可以为列表动态设置一些初始值和一些事件处理程序。

我目前正在使用以下代码,但它没有起到作用:

在我调用 setInitialSliderValues() 时,视图仍未刷新。

当我尝试使用以下内容时,我收到错误“$digest already in progress”:

如果不使用计时器来检查我期望的更改,我如何才能绝对确定对数据的更改已在页面上生效。

0 投票
1 回答
1081 浏览

javascript - 如何从另一个控制器更新控制器的 ng-repeat 模型?

我有两个<div>带有自己的控制器。第一个 div 有一个ng-model="listEntries". listEntries我在 this<div>的控制器中初始化。

html

我将 传递$scopegetList()并将$scope.listEntries值设置为serviceForFirst。然后我使用listEntriesas ng-model

这是我的第二个控制器和与之关联的服务。我打算在listAll每次调用addNew(). 这就是我正在尝试的方式。

用于此的 HTML<div>

但是该列表没有在第一个更新<div>$scope.$apply()如果我在getList()设置之前尝试做,$scope.listEntries那么我会得到 $digest 已经在进行中的错误。

当我这样做时console.log(),我看到每个服务中的适当函数都被调用但列表没有被更新。

我应该如何更新列表?

0 投票
1 回答
13814 浏览

javascript - 向按钮发送点击事件时,$apply 已经在进行中了吗?

我的页面上有一个按钮,页面上有一个 id="viewQuestions":

我的代码正在检查这样的键命中:

在控制器中:

当我运行代码并单击 ENTER 时,我收到此错误:

谁能给我这方面的建议。我只想模拟按下 ENTER 键时单击按钮。我确实尝试过使用表单的解决方案,但它不能满足我相当复杂的需求。

0 投票
1 回答
80 浏览

javascript - 为什么我的自定义过滤器会导致无限消化?

我创建了一个自定义过滤器,将键值对数组分解为一个对象,该对象按特定属性的第一个字母对值进行分组。例如

输入:[{foo: 'bar'}, {faz: 'baz'}, {boo: 'foo'}]

输出:{f: [{foo: bar}, {faz: baz}], b: [{boo, foo}]}

然而,这个过滤器似乎在 Angular 中导致了一个无限的消化错误。

我不知道为什么。从我发现的情况来看,这通常是由于在过滤器中修改了您的模型,从而重新触发了 ng-repeat,但是我认为我没有这样做。

0 投票
4 回答
344 浏览

angularjs - 如何检测 $scope.$watch 中删除的项目?

有什么方法可以通过 $scope.$watch 检测删除或添加的项目吗?

请看下面的例子:

谢谢

0 投票
2 回答
1323 浏览

angularjs - 导致无限摘要循环的指令

以下指令导致无限摘要循环,我不知道为什么。关于如何重新编写代码的任何想法?

谢谢!

0 投票
1 回答
840 浏览

javascript - 在没有摘要循环的情况下解决承诺

AngularJS 的 Promise 似乎与摘要循环相关联,例如,在运行摘要循环之前不会调用成功/错误回调。这意味着任何使用 Promise 的东西,例如$http手动创建的 Promise,也需要触发一个摘要循环,以使回调运行。

是否可以在 Angular 中使用 Promise,而根本不运行摘要循环?我意识到您可以使用$applyAsync,它将摘要周期安排在稍后的时间,但我希望根本不运行摘要周期,并且仍然then运行回调。

从本质上讲,我正在尝试研究如何从一个应用程序中尽可能多地压缩性能,该应用程序将使用相当多的异步行为,这些行为需要解决 Promise,但不一定需要运行摘要循环。

0 投票
2 回答
164 浏览

javascript - 10 digest() 迭代在登录过程中达到错误

这是我在我的应用程序中实现登录过程的代码。应用程序必须验证服务器设置的 cookie 并通过将用户重定向到画布状态来继续登录过程。我的问题是我收到上述错误。实际上它可以成功登录,但我想摆脱这个错误。我想错误应该在 $stateChangeStart 但我不知道如何解决它。任何想法?

0 投票
0 回答
160 浏览

angularjs - Angular:多个指令一起讨论。$apply/$emit/$broadcast 混淆

所以我在控制器中实例化了两个指令(时间轴和显示器)。

当时间轴上发生点击时,它$emitTimelineClicked控制器的事件。

控制器作为Displayer 的事件$on('TimelineClicked', cb)$broadcastUpdateDisplay

我这里有两种情况:

  1. onUpdateDisplay可以在一个$digest周期内调用,例如在加载时,它会更新 UI
  2. TimelineClicked 但是当它显然来自它时,它没有被$digest编辑。

因此用这样的包装方法$apply

$apply already in progress error将在情况 1 而不是 2 中触发when 。

我不考虑做一些if ($scope.$root.$$phase != '$apply' && $scope.$root.$$phase != '$digest')太脏的事情恕我直言。

  • 两个指令应该如何一起讨论并确保它们的范围始终是最新的?
  • $apply 循环是否等待事件回调完成?
  • 我应该把apply其他地方(周围$on('TimelineClicked', cb))包装起来吗?

我尝试了几种配置都没有成功...

0 投票
2 回答
8963 浏览

javascript - ondragstart, ondragover,onstart - $scope 未定义

我的任务是使用 angular 处理删除的文本。$scope is not defined我在拖放事件中不断收到此错误。知道如何解决这个问题吗?

我已经研究了角度拖放库。他们不允许拖放简单的文本。他们中的大多数都使用列表。让我知道是否有适合此任务的

这是plunker:

[ http://plnkr.co/edit/egKL13hsHka6RiX4UfSS?p=preview][1]

这是控制器: