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

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

内容简介:翻译自: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》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

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

疯狂科学家大本营

疯狂科学家大本营

Bei Er Fei Ao Er / 本书翻译组 译、黄晓庆 周宇煜 张为民 审译 / Science Press / 2012-1-5 / 48.00元

美国最棒的创意工场不是贝尔实验室,不是硅谷,也不是麻省理工学院的媒体实验室,而是由五角大楼领导的绝密军事机构DARPA——国防高级研究计划局。DARPA是由美国前总统艾森豪威尔建立的军事部门,创建的目的是为了回应苏联的太空计划。 虽然DARPA属于政府机构,但是没有冷冰 冰的氛围和官僚做派,那里的科学家偏爱牛仔裤和运动鞋。不过他们最爱的还是在各个领域寻找颠覆性创意。从航空航天、IT,到能源领......一起来看看 《疯狂科学家大本营》 这本书的介绍吧!

html转js在线工具
html转js在线工具

html转js在线工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具