问题标签 [angularjs-apply]

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

angularjs - 刷新angularjs中的特定指令

我一直在努力尝试所有可以想象的组合,以在对树结构进行更改时尝试让树菜单的分支正确刷新。基本上我所拥有的是一组递归嵌套指令来显示树的分支。我构建了一个 javascript 类来存储树结构的任何给定部分的指令数据。该类包含一个模型,我基本上已经接口,因此它有一些已知的方法(例如 getVals() 从 ajax 加载数据和 getId()、getName()、getLabel() 来检索用于构建树的公共属性) . 然后我以两种方式使用它来构建具有该对象对的树,第一种是对于给定的分支点,它将包含一个描述“组”的模型(具有多个子分支)(从基本上是一组学说实体样式对象的 Doctrine ORM 集合加载数据),另一个是表示作为实际分支的实体的单个模型。这个想法是任何主干(分支点)都将有两个选项 - 一个显示该组/父级的详细信息,另一个仅显示子级的名称。然后每个孩子都可以选择显示它的详细信息或显示它的孩子等等。

当我开始添加函数来操作给定分支点(实体)的属性和/或添加/删除/移动分支本身时,我的问题就出现了。我有用于添加/更新/删除的表单(仍在移动中),但是当保存数据时,因为我的模型正在执行自己的 ajax 休息调用,树不会更新以反映更改。问题之一是我在孩子的 UL 标记之后设置了添加按钮 - 我可以很好地更新它,因为它与具有 UL 标记的模板位于同一指令中。但是孩子们处于第二个指令之下,该指令与 LI 周围的 ng-repeat 相关联,用于显示每个子分支包装器。因此更新/删除按钮显示在该模板中,但我需要刷新的范围是父级。我知道我可以做 $parent.$parent。reload() 来调用我的刷新脚本,但是当我开始执行“移动”功能时,我可能正在将列表项移动到树的一半。我在模板的分支点有一个“刷新”按钮,并尝试执行 document.getElementById('branchpointX').click(); 但这很笨拙,我一直在尝试找出在该范围的 .reload() 函数内刷新范围内该点的最佳方法。$scope.$apply 有时会与现有的 $digest 刷新发生冲突,即使将它们放入 $timeout 有时仍会引发刷新已在进行中的错误。并尝试做一个 document.getElementById('branchpointX').click(); 但这很笨拙,我一直在尝试找出在该范围的 .reload() 函数内刷新范围内该点的最佳方法。$scope.$apply 有时会与现有的 $digest 刷新发生冲突,即使将它们放入 $timeout 有时仍会引发刷新已在进行中的错误。并尝试做一个 document.getElementById('branchpointX').click(); 但这很笨拙,我一直在尝试找出在该范围的 .reload() 函数内刷新范围内该点的最佳方法。$scope.$apply 有时会与现有的 $digest 刷新发生冲突,即使将它们放入 $timeout 有时仍会引发刷新已在进行中的错误。

所以我想知道在所述指令的层次结构树中刷新特定指令的最佳方法是什么?我已经尝试在每个 subBranch 中构建一个堆栈,其分支点的标签返回到原点,但是如果我尝试运行 treeStack['someParentId'].reload() 它在子范围内似乎不起作用.

西南

0 投票
0 回答
1919 浏览

angularjs - 错误:[$rootScope:inprog] $apply 已经在进行中

我只是尝试'ngTagsInput'在我的角度应用程序中使用,并且应用程序中的标签运行良好,但同时它在控制台中抛出错误。它不影响我的 UI 流程,但是是的错误正在控制台中记录。为什么原因和解决方案这个错误。错误:

这是为浏览器下载我的文件的顺序

和我的看法

我的控制器

在我使用 scope.watch/.eval/.apply 的地方有自定义指令

0 投票
1 回答
136 浏览

angularjs - AngularJS - 等待来自服务器的数据并将它们正确添加到列表中

我目前正在开发一个 AngularJS 项目,我必须从服务器获取特定月份和年份的项目信息并将其显示给用户。

首先,我得到一个项目 ID (projectList) 的列表,它可以是可变的,然后我需要获取特定年份和月份的这些项目的信息。使用此代码,我试图在最后一个项目成功时获取数据并刷新数据。获取数据后,我使用 ng-repeat 将其显示给用户。

这有2个错误。

  1. 它只将数据添加到最后一个索引。
  2. 当我请求另一个月或一年的数据时,它不会立即刷新数据

我已经用$q.all寻找解决方案,但我不确定如何将它与“projectService.getProject(..)”的可变数量的函数一起使用

0 投票
1 回答
756 浏览

angularjs - http服务返回后范围变量未获取数据对象

我正在尝试读取服务器上的文件列表。HTTP GET 方法服务返回文件列表,但控制器中的范围变量未使用返回值进行更新。你能帮我找出问题所在吗?

0 投票
1 回答
54 浏览

angularjs - 是否必须将 $scope.$apply 用于非角度事件

当控件从非角度事件返回时,总是使用 $scope.$apply 更新范围变量是一个好习惯吗?

我有一个用例,角度和非角度事件都使用相同的方法,我想避免代码重复。

0 投票
2 回答
83 浏览

angularjs - 在哪里使用 $apply 而不是使用 $digest

如果有人能提供任何可以帮助我破解面试的真实例子,我将不胜感激。

0 投票
4 回答
303 浏览

javascript - JS - 为什么 Angular 使用 `ng-click="f()"` 属性来处理点击事件,而不是 `$(el).on('click', f)`?

为什么 Angular 使用ng-click="f()"属性来处理点击事件,而不是$(el).on('click', f)

我问这个是因为使用 htmlonclick属性通常被认为是一种不好的做法,那么为什么 Angular 使用这种方法呢?

0 投票
1 回答
136 浏览

javascript - 如何将数据从第三方库回调(firebase)传递到 AngularJS 中的视图

我正在使用 angularjs 和 firebase 上传文件我正在尝试将参数从控制器传递到 state_changed 事件中查看它不工作,我可以在控制器上打印它但不能将它用于视图

我使用的这些代码

0 投票
1 回答
39 浏览

angularjs - 即使在使用 $apply 之后 $scope 也不会更新

在下面的视图中,我正在从 $scope.saveSearchList 重新生成一个下拉列表:

在我的控制器中,我正在更新 $scope.saveSearchList 但它似乎没有反映我的观点。请问我该如何解决?

0 投票
2 回答
2357 浏览

angularjs - $scope.$apply() 不工作 - AngularJs

尽管在用户输入正确的用户名和密码后应用了 $scope.$apply(),isV(boolean) 的值并没有改变。$scope.$digest() 也不起作用