Angular:使用浏览器控制台 javascript 处理代码后刷新 DOM

Angular: Refresh DOM after manupulating code using browser console javascript

提问人:Sarthak Kuchhal 提问时间:7/11/2022 最后编辑:R. RichardsSarthak Kuchhal 更新时间:7/11/2022 访问量:77

问:

网站是用 Angular.js 编写的,它们具有过滤选项,默认情况下检查所有类别,没有“全部清除”过滤器选项。Filter Options

就像这个网站图片(这是亚马逊)一样,他们有一个清晰的按钮,但我想工作的网站(不能透露名称)没有清除所有过滤器按钮(网站是用 Angular 制作的)。

因此,我设法使用 Javascript 清除了所有复选框,并使用在浏览器控制台中输入的此代码片段取消了选中。

var inputs = document.getElementsByTagName('input');

for (var i=0; i<inputs.length; i++)  {
  if (inputs[i].type == 'checkbox')   {
    inputs[i].checked = false;
  }
}

在 Chrome 浏览器控制台中使用此代码片段,我能够取消选中所有复选框,但它没有对 dom 进行更改,并且产品没有被过滤。它们保持不变,就好像所有复选框仍处于选中状态一样。enter image description here

在控制台日志中写入 js 片段后,有没有办法刷新 DOM,以便 DOM 可以检查更改并更新页面?

谢谢

javascript angularjs dom 浏览器控制台

评论


答:

0赞 Ezenhis 7/11/2022 #1

您可能需要触发一个新的摘要周期,以便 AngularJS 获取更改。你可以通过获取元素的作用域并触发它的$apply函数来做到这一点:

angular.element('input').scope().$apply()

评论

0赞 Sarthak Kuchhal 7/14/2022
我收到此错误“VM458:8 Uncaught TypeError:无法读取未定义的属性(读取'$apply')在 <anonymous>:8:33 ”