提问人:Sarthak Kuchhal 提问时间:7/11/2022 最后编辑:R. RichardsSarthak Kuchhal 更新时间:7/11/2022 访问量:77
Angular:使用浏览器控制台 javascript 处理代码后刷新 DOM
Angular: Refresh DOM after manupulating code using browser console javascript
问:
网站是用 Angular.js 编写的,它们具有过滤选项,默认情况下检查所有类别,没有“全部清除”过滤器选项。
就像这个网站图片(这是亚马逊)一样,他们有一个清晰的按钮,但我想工作的网站(不能透露名称)没有清除所有过滤器按钮(网站是用 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 进行更改,并且产品没有被过滤。它们保持不变,就好像所有复选框仍处于选中状态一样。
在控制台日志中写入 js 片段后,有没有办法刷新 DOM,以便 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 ”
评论