javascript – 如何观看DOM以进行更改AngularJS

栏目: 编程语言 · AngularJS · 发布时间: 6年前

内容简介:翻译自:https://stackoverflow.com/questions/19304559/how-to-watch-the-dom-for-changes-angularjs
这可能看起来像一个愚蠢的问题,但我需要知道如何观看页面的整个DOM并在它发生变化时重新编译它.基本上这就是AngularJS默认使用数据绑定所做的事情,但我需要在DOM发生任何变化时发生这种情况,而不仅仅是绑定.原因是因为我有一个完全用HTML, Javascript

PHP 构建的应用程序.它是一个单页面应用程序,它有一个主页面,并将PHP注入该页面内的DIV包装器.

我想对它进行一些修改,但希望将我的代码与原始代码完全分开.为此,我需要能够在注入具有自己的DOM结构的新PHP文件时重新编译DOM.到目前为止我所看到的似乎没有起作用.

app.directive("watch", function () {
    return function (scope, element, attr) {
        scope.$watch("watch", function(oldValue, newValue) {
            if(newValue) {
                console.log("there is a new value");
                console.log("the new value is " + newValue);
             }
         });
     }
});

我将watch属性添加到<body>标签,但它似乎没有工作,当更改dom时,没有任何记录.最后我想用$compile替换console.log,但我首先需要让手表正常工作.有人能指出我做错了吗?

这是一个坏主意,但我会幽默你.

正如我在上面的评论中所说,做你想做的事情是个坏主意.也就是说,如果你仍然想要这样做,你可以通过将函数作为第一个参数传递来观察任何事情.

下面的代码将检查<body>中是否包含HTML.标签已更改.请注意,这是一个可怕的想法.

$scope.$watch(function () {
   return document.body.innerHTML;
}, function(val) {
   //TODO: write code here, slit wrists, etc. etc.
});

上面的手表会在HTML中的任何时候发生变化.

>当输入值发生变化时

>当选择在下拉列表中更改时

>当属性在html中的任何元素中发生更改时.

>等

附加信息:截至目前,在很多浏览器中,监控已加载的新DOM元素并不是一个好方法.最好的方法是在添加新的DOM元素时触发某些东西.

翻译自:https://stackoverflow.com/questions/19304559/how-to-watch-the-dom-for-changes-angularjs


以上所述就是小编给大家介绍的《javascript – 如何观看DOM以进行更改AngularJS》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Math Adventures with Python

Math Adventures with Python

Peter Farrell / No Starch Press / 2018-11-13 / GBP 24.99

Learn math by getting creative with code! Use the Python programming language to transform learning high school-level math topics like algebra, geometry, trigonometry, and calculus! In Math Adventu......一起来看看 《Math Adventures with Python》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

SHA 加密
SHA 加密

SHA 加密工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具