最近某个产品的web版本改用了angular
之前做的chrome插件主要是通过操作dom来完成一些自动化工作。如今这个产品改用了angular,插件也就不能用了,还得改。
我们先来看看它给我们带来了什么麻烦:
angular的 data binding导致我们直接操作dom失效。再也不能在chrome插件或者浏览器控制台中直接操作dom来达到目的了,因为真正的数据保存在service中,或者保存在controller中,当我们尝试用脚本在input填入数据时,会发现,controller中的数据值并不会改变,这样,我们的目的就没法达到了。
再来看看给我们带来了什么好处:
数据和业务逻辑完全封装到service和controller中,非常清晰,如果我们能访问到,那要比直接操作dom更加容易实现需求。
还得去官网翻文档
我查到了angular.element方法。
element
该方法返回几个jquey封装的页面对象,同时angular还为他提供了几个额外的方法,其中之一就是scope,scope在angular是一个分厂常见的概念,具体还是看文档吧
scope
这样我们就可以直接访问scope上的方法和数据了。
比如打开一个angular的web站点,打开浏览器控制台,输入:
//得到jquery选择器指定元素的scope
var scope = angular.element($(".class")).scope();
//如果scope下存在方法hello,则可以直接调用
scope.hello();
//如果scope下存在mode属性,则
console.log(scope.mode);
就这样,我们又可以通过控制台或者浏览器插件,来实现一些自动化工作了。
本来要上实例,不过今天被csdn恶心了一把,导致博文丢失,今天就只写这么多了,有机会,会上示例。