问题标签 [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 回答
465 浏览

angularjs - 防止 Angular $watch 循环

我正在整理一个快速的资金输入,它会自动将小数点添加到输入的金额中。但是我遇到了一个问题,我的 $watch 函数永远循环然后出错。这就是我所拥有的:

任何建议,将不胜感激。

0 投票
1 回答
337 浏览

angularjs - 为什么 $digest() 不会从 Parse 回调中自动调用?

我有一个 select2 下拉列表,它绑定到我范围内的数据($scope.makes)。它在 ng-modal 中“生活”。

我在一个 Promise 中更新了 $scope.makes,这是一个 Parse.com 调用(parse.cloud.run),但之后它结束了 DDL 并没有被新数据引用。但是,如果我添加 $scope.$digest() 的调用,它就可以工作。这是为什么?

这是模态控制器的相关部分:

如果我删除最后一行 - 下拉列表不会被刷新。

这是相关的 Modal 的 HTML 部分

0 投票
1 回答
257 浏览

angularjs - $scope.$digest() 不填充 select2 下拉列表

我有 2 个使用 ui-select2 的下拉列表

在下拉列表“Makes”中选择一个值后,我正在激活一个手表,在其中我加载“Models”下拉列表的内容。然后,为了刷新 GUI 中的下拉列表内容,我调用 $scope.$digest() :

问题是使用$digest 时,第一个下拉列表的选定值变为空,没有它就不会刷新视图。

请问有什么建议吗?

0 投票
1 回答
2137 浏览

javascript - 解决 Karma 单元测试中嵌套的 AngularJS 承诺

我尝试测试一个使用嵌套承诺的函数(假设这个函数不能更改)。为了处理这些承诺,我必须$rootScope.$digest()至少打电话两次。我想出了这个工作解决方案,$digest()每 10 毫秒调用一次。

问题是估计消化足够时间以解决所有承诺所需的超时持续时间。如果服务对例如 localstorage 进行真正的异步调用,情况会变得更加复杂。

还有其他方法可以解决这个问题吗?有没有办法获得所有剩余的承诺?

0 投票
1 回答
4811 浏览

javascript - 尝试从 v1.2 升级时出现“TypeError:非法调用”

编辑:这似乎与 Chrome v43 有关,我降级到 v42 并且一切正常。

编辑:我已经在 Angular 的 Github 存储库上提交了一个问题。

似乎错误是 在 angular.js 源代码中按return logFn.apply(console, args);行抛出的。12221

这是Chromium 错误的链接。

关于现在该做什么的任何提示?


我正在尝试将我的应用程序从 AngularJS v1.2 迁移到 v1.3 或 v1.4,但我正在TypeError: Illegal invocation使用 Chrome(尝试过 win、osx 和 ubuntu)。

堆栈跟踪并没有真正帮助:

所以这似乎与 AJAX 请求有关,但我也得到:

$interval用来更新模型类(这是一个工厂,并通过设置这个类反映在视图中$scope.client):

我觉得有问题$digest/$apply。我已经花了几个小时调试这个,但仍然不知道发生了什么。

任何指向进一步调试的指针都非常感谢。

0 投票
1 回答
6073 浏览

javascript - AngularJS:如何从控制台编辑 $scope?

我可以根据此处$scope接受的答案访问变量。但是,我无法从控制台编辑它,即更改属性、调用函数等。这甚至可能吗?

这是我一直在尝试的测试代码:

如果我text使用控制台编辑属性,它会改变,但视图不会改变:

如何$scope从控制台更改值和属性,以便视图和所有依赖项也得到更新?

0 投票
1 回答
303 浏览

javascript - AngularJS / Firebase - 需要登录两次才能成功登录

我有简单的 AngularJS 应用程序并使用 Firebase OpenAuth 进行用户身份验证。这是来自 plunkr 的示例代码。

我必须单击两次才能从 Google 获得 authData。我不明白,为什么我无法在第一次点击时获取数据。

0 投票
2 回答
68 浏览

angularjs - 工厂内部 $http 对数据所做的更改不会反映到 DOM

我正在尝试基于对象创建动态表单。例如:如果给定,我希望生成的选择框将包含选项,否则工厂将使用 ajax 获取它们,如下所示:

标记:

控制器:

工厂:

数据( $scope.selects )按预期更新,但 DOM 没有,这可能意味着 refactor.options() 没有再次调用以响应更改。我试图通过将范围对象传递给工厂并在其上调用 $apply 来强制更新,但它不起作用。

我错过了什么?

0 投票
1 回答
618 浏览

angularjs - angular ui bootstrap datepicker 导致“infdig”

我正在尝试在我的应用程序中应用来自 angular ui 的日期选择器,但由于某种原因,它会导致以下错误:

错误:[$rootScope:infdig] 达到 10 个 $digest() 迭代。中止!观察者在最后 5 次迭代中触发:[] http://errors.angularjs.org/1.3.15/ $rootScope/infdig?p0=10&p1=%5B%5D

我不明白为什么会触发此错误,因为。在上面的链接中,描述如下:

当应用程序的模型变得不稳定并且每个 $digest 循环触发状态更改和后续的 $digest 循环时,就会发生此错误。Angular 会检测到这种情况并防止无限循环导致浏览器无响应。

我根本不明白这如何适用于我的情况。

如果我使用这样的常规输入字段:

没有问题,日期显示得很好,但是:

将导致错误。比我聪明的人可以给我一个关于我错过了什么的指针。我只是从后端加载日期并尝试将其显示为日期选择器中的当前日期。

/问候克里斯

0 投票
0 回答
221 浏览

angularjs - 更新列表时暂停 $watching 的 ng-repeat

我有一个带有显示一些标记的 MapBox 地图的页面,以及一个显示每个标记的一些信息的面板。为此,我将标记添加到markers控制器拥有的数组中ctrl

然后,在我的 html 面板中,我有类似的东西

它可以工作,但是当我用 设置标记时map.setGeoJSON(x),它会为添加的每个标记触发事件on('layeradd')。他们每个人都会自动触发一个$scope.$digest. 有没有办法暂停观察数组markers,添加所有标记,然后恢复它?

我尝试了这个解决方案(来自codewall),但它不起作用

[更新 1]

正如@YOU 建议的那样,我尝试使用 temp_array 进行修改。所以现在ng-repeat手表ctrl.markers,但我添加和删除项目ctrl.temp_markers。当我完成更新时,我会这样做ctrl.markers=ctrl.temp_markers.slice(0)。即使以这种方式,我看到摘要循环适用于数组中的每个项目:(