当前位置: 首页 > 面试题库 >

AngularJS / ng-grid-使用拼接更新数组不会更新UI

云啸
2023-03-14
问题内容

我正在尝试使用array 更新 ng-gridsplice。我
这里 有个小伙伴。

添加按钮添加新行。更新按钮更新阵列中的最后一项。

  1. 选择一行并按更新按钮。没发生什么事。
  2. 按添加按钮。现在,UI将使用新元素&以及以前更新的元素进行更新。
  3. 相同的行为一次又一次地重复。

我试过了$scope.$apply。我得到:

“错误:$ apply已经在进行中”

我什至尝试通过将$scope.$apply块放置在setTimeout呼叫中来进行尝试。同样是同样的错误!

任何指针!

谢谢!


问题答案:

这是因为ng-grid中的data $ watcher(错误地)比较了数据对象以供参考,而不是对象相等。您可以通过在data $
watch函数
(第3128行)中将第三个参数设置为true来解决此问题:

$scope.$parent.$watch(options.data, dataWatcher, true);

柱塞



 类似资料:
  • 问题内容: 我正在通过ng-repeat循环渲染数据。而且我希望它在更新数组时进行更新。从我阅读的内容来看,这应该会自动发生,但是这是行不通的。那我在做什么错? 的HTML: 控制器(此功能通过ng-click在按钮上触发): Console.log显示该数组已正确更新,但是我视图中的表未更改。我不知道我在做什么错。 问题答案: 那是因为您在method中更改了数组引用。 为了避免这种情况,我们使

  • 问题内容: 这是我的HTML: 当我在框中输入内容时,该模型会通过2向绑定机制进行更新。甜。 但是, 当我通过JQuery执行此操作时… 它不会更新模型。为什么? 问题答案: Angular不知道这种变化。为此,您应该在以下位置致电或进行更改: 看到这个以更好地了解 脏检查 更新 :这是一个示例

  • 问题内容: 我有两个控制器,并使用app.factory函数在它们之间共享数据。 单击链接时,第一个控制器在模型数组(pluginsDisplayed)中添加一个小部件。将小部件推入数组,并将此更改反映到视图中(使用ng- repeat显示数组内容): 该小部件基于三个指令k2plugin,remove和resize建立。remove指令将范围添加到k2plugin指令的模板。单击该范围时,将使用

  • 问题内容: 我有一个ng-repeat,它在更改正在使用的数组中的数据时不会更新。我已经研究了一段时间,但似乎没有任何效果。最初,当页面加载时,ng- repeat显示数据集的第一页,在获取新数据(下一页)并使用该数据设置该数组时,ng- repeat不会注意到更改,并且永远不会填充更新的数组。如果有人可以在正确的方向上指导我,将不胜感激。 }]); 问题答案: 尝试将tbody包装在div中,但

  • 问题内容: 我有一个返回图像URL的服务,并且使用以下代码进行调用: 在我看来,我曾经有一个带有ng-src属性的图像,它的工作原理非常像这样: 然后,我决定在SPAN上使用背景图片: 现在该流程仅在第一次运行时有效,之后我可以在控制台中看到以下html 这表示该变量已更新,但是html仍处于其初始状态。 我尝试在成功发布后致电apply / digest,但已经遇到了错误 $ digest(正在

  • 问题内容: 我已经阅读了有关此问题的主题,例如:[\AngularJS中未更新视图,\但我仍然不明白如何在我的简单示例中应用它。 我有这个功能: 当代码中的其他地方更新时(用户单击,交互,发送XHR请求时),它不会更新我的视图。我知道我需要使用$apply做些事情,但我不知道在哪里以及如何做。 有人可以向我解释如何针对这个简单用例解决此问题吗? 我的模型看起来像这样(如果这个问题是必要的)-它里面