在AngularJS的controller外部直接获取$scope

为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处。LaplaceDemon/SJQ。

http://www.cnblogs.com/shijiaqi1066/p/5560843.html

 

 

 

以前利用webqq的写过一个自动发消息的脚本,由于那时webqq还直接使用类似jQuery操作DOM的技术,所以脚本很简单就可以实现。

现如今很多web应用都开始使用AngularJS,MVVM导致的就是无法操作dom而去直接改变数据。所以面对网页版微信,要实现一个自动发送的脚本,就无法再用以前那套DOM的思路了。


 

要修改AngularJS中的数据,首先就要获取scope。其实获取scope的方法很简单。

由于大部分Angular项目需要使用jQuery作为补充。可以在jQuery中通过.scope()方法获取当前选择器内容里继承的域。

即类似这样的方式:

$('div[ng-controller="listController"]').scope();

例:完整的例子。

<!DOCTYPE html>
<html lang="en" ng-app="app">
<head><meta charset="UTF-8"><title>Get angular's scope in jQuery</title><script src="http://cdn.bootcss.com/jquery/2.1.4/jquery.js"></script><script src="http://cdn.bootcss.com/angular.js/1.4.3/angular.js"></script><script>angular.module('app',[]).controller('listController',['$scope', function ($scope) {$scope.list = [1,2,3,4,5];$scope.test = function () {console.log('test');}}])</script><script>$(document).on('ready', function () {var controllerScope = $('div[ng-controller="listController"]').scope();  // Get controller's scope
            controllerScope.test(); // log 'test'
            console.log(controllerScope.list); // log [1,2,3,4,5]
            $('button').click(function (e) {var scope = $(e.target).scope();console.log(scope.item) // log item number
                scope.test(); // log 'test'
            })})</script>
</head>
<body>
<div ng-controller="listController"><ul><li ng-repeat="item in list"><button>Select {{item}}</button></li></ul>
</div>
</body>
</html>

 

那么打开网页版微信的页面(2016-06-05)选中你需要发消息的人。然后执行如下脚本:

var controllerScope = $('div[ng-controller="chatSenderController"]').scope();    // 获取chatSenderController的$scope
controllerScope.editAreaCtn = "星哥,下午好";    // 设置需要发送的消息。即设置$scope某个属性的值。//  触发“发送按钮”的点击事件。
$(".action a").trigger("click");

 

非常好的“外挂方式”。

 

 

 

为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处。LaplaceDemon/SJQ。

http://www.cnblogs.com/shijiaqi1066/p/5560843.html

转载于:https://www.cnblogs.com/shijiaqi1066/p/5560843.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/287461.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

js pug 代码_pug模版学习(一)

标签按照html的缩进格式doctype htmlhtmlheadtitlebody编译结果&#xff1a;文本p 这是文本| 这是文本p.这是文本编译结果&#xff1a;这是文本这是文本这是文本属性设置class名跟id名(默认是div)p.foop#foop#foo.foo.foo#foo编译结果&#xff1a;其他属性&#xff1a;a(href&q…

Upgrade Hole puncher Mathematical Modeling

// AntColony.cpp : 定义控制台应用程序的入口点。 //#include<iostream> #include<math.h> #include<time.h> #include<stdio.h> #include <fstream> #include <string> #include <iostream> #include <vector>using n…

Android之提示Cannot call this method while RecyclerView is computing a layout or scrolling

1 问题 java.lang.IllegalStateException: Cannot call this method while RecyclerView is computing a layout or scrolling androidx.recyclerview.widget.RecyclerView{24d6f3b VFED.V... ......ID 0,657-1074,1911 #7f090143 app:id/recyclerView}, adapter:com.appsinno…

Java8新的异步编程方式 CompletableFuture(三)

前面两篇文章已经整理了CompletableFuture大部分的特性&#xff0c;本文会整理完CompletableFuture余下的特性&#xff0c;以及将它跟RxJava进行比较。 3.6 Either Either 表示的是两个CompletableFuture&#xff0c;当其中任意一个CompletableFuture计算完成的时候就会执行。 …

情人节,我表白了CSDN小姐姐后,竟然...【为表白写了一个绘图工具,让我不再手残】

情人节&#xff0c;我表白了CSDN小姐姐后&#xff0c;竟然…竟然有人看了这篇文。 以下图片素材由一个还没写完的工具绘制&#xff0c;稍后会放在CSDN的代码仓库&#xff08;现在能用了&#xff0c;还没时间改&#xff0c;颜色填充算法还没写&#xff0c;有能力的朋友可以修改一…

【小程序】刘一哥课堂随机点名提问神器V1.0(附源程序)

为了能让我们的孩子们尽量来教室上课,增强课堂的参与度,激发课堂激情,提高学习效率,一哥也是煞费苦心,于是开发出了这么一款课堂点名提问神器,跟大家分享一下。 打开神器,看到的界面是这样子的,我很感激有勇气按时起床并能到教室的每一位有志之士。 点击【开始】按钮,…

org.hibernate.HibernateException: No Session found for current thread

spring、springmvc和hibernate整合 在sessionFactory.getCurrentSession()时&#xff0c;出现以下异常 No Session found for current thread但使用sessionFactory.openSession()是没有任何问题的 严重: Servlet.service() for servlet [springDispatcherServlet] in context w…

java mysbatis select_MyBatis SELECT基本查询实现方法详解

1、返回一个LISTselect * from tbl_employee where last_name like #{lastName}2、将查询记录封装为一个Mapselect * from tbl_employee where id#{id}返回一条记录的map&#xff1b;key就是列名&#xff0c;值就是对应的值。3、多条记录封装为一个mapMapKey("id")pu…

Git之怎么通过命令修改前面几次提交的记录

1 问题 我们平时用gitlab,github发现提交代码上库记录写错了&#xff0c;需要修改回来。 2 解决办法

Git客户端TortoiseGit(Windows系统)的使用方法

本文环境&#xff1a; 操作系统&#xff1a;Windows XP SP3 Git客户端&#xff1a;TortoiseGit-1.8.8.0-32bit 一、安装Git客户端 全部安装均采用默认&#xff01; 1. 安装支撑软件 msysgit: https://code.google.com/p/msysgit/downloads/list?qfullinstallerofficialgit 当前…

.Net 在容器中操作宿主机

1方案描述 在 docker 容器中想操作宿主机&#xff0c;一般会使用 ssh 的方式&#xff0c;然后 .Net 通过执行远程 ssh 指令来操作宿主机。本文将使用 交互式 .Net 容器版 中提供的镜像演示 .Net 在容器中如何操作宿主机。2前期准备 1. 宿主机上生成 ssh key生成 ss…

【看动漫学编程】程序员在异世界生个娃 第1篇:太极村

前言 作者文笔比较水&#xff0c;还请见谅。 以下内容还将使用视频动态漫画表现&#xff0c;剪辑完将会贴出链接。 小说剧情为剧情需要&#xff0c;过渡到知识点&#xff0c;部分篇幅可能没有技术知识点还望谅解。 由于没有经费支持&#xff0c;所以画出来的东西是我自己用代码…

【ArcGIS风暴】最牛逼空间数据批处理神器来了:用户自定义工具箱GeoStorm.tbx

【Warming up】在学习和工作的过程中,作者曾写过很多采用ArcGIS模型构建器(Model Builder)、Python代码等批处理方法(感兴趣的GISers可以去【测绘地理信息Big风暴专】栏去交流学习指导),大大的减轻了操作压力,提高了工作效率。今天给大家展示一款神器:自定义工具箱GeoS…

2.6. PostgreSQL表之间连接

到目前为止&#xff0c;我们的查询一次只访问了一个表。查询可以一次访问多个表&#xff0c;或者用某种方式访问一个表&#xff0c;而同时处理该表的多个行。一个同时访问同一个或者不同表的多个行的查询叫连接查询。举例来说&#xff0c;比如你想列出所有天气记录以及这些记录…

Android之Caused by: java.lang.IllegalArgumentException: Failed to find configured root that contains

1 问题 用takePhoto去照相的时候特么的一打开就报这个错误 2020-04-09 21:33:49.124 19016-19016/com.appsinnova.android.keepshare E/AndroidRuntime: FATAL EXCEPTION: mainProcess: com.appsinnova.android.keepshare, PID: 19016java.lang.RuntimeException: Unable to …

Linux下c/c++项目代码覆盖率的产生方法

最近做了一系列的单元测试相关的工作&#xff0c;除了各种规范及测试框架以外&#xff0c;讨论比较多的就是关于代码覆盖率的产生&#xff0c;c/c与其他的一些高级语言或者脚本语言相比较而言&#xff0c;例如 Java、.Net和php/python/perl/shell等&#xff0c;由于没有这些高级…

C# WPF从后台代码生成行列可变的表格

z概述WPF常用的表格控件是DataGrid&#xff0c;这个控件在前台XAML编写的话&#xff0c;一般列已经固定&#xff0c;然后给每个列去绑定数据&#xff0c;但是如果我的列不固定&#xff0c;随着运算结果变动呢&#xff1f;这时候DataGrid&#xff0c;就比较难实现这个需求&#…

软件架构实践文章链接

2019独角兽企业重金招聘Python工程师标准>>> 架构 InfoQ: 又拍网架构中的分库设计 SNS网站数据库技术分析 - 51CTO.COM 数据库水平切分的实现原理解析 - iBATIS - Java - JavaEye论坛 基于amoeba的mysql分布式数据库学习&#xff08;一&#xff09; - Java - JavaEy…

【看动漫学编程】程序员在异世界生个娃 第2篇:外挂已准备就绪

前言 作者文笔比较水&#xff0c;还请见谅。 以下内容还将使用视频动态漫画表现&#xff0c;剪辑完将会贴出链接。 小说剧情为剧情需要&#xff0c;过渡到知识点&#xff0c;部分篇幅可能没有技术知识点还望谅解。 由于没有经费支持&#xff0c;所以画出来的东西是我自己用代码…

java剪切txt文件_用Java把剪切板的内容实时保存到txt

test类&#xff1a;提示用户程序已启动&#xff0c;提示保存位置&#xff0c;清空剪切板。package com.ariya.service;import com.ariya.service.impl.ClipboardServiceImpl;/*** author Ariya* 程序入口*/public class Test {public static void main(String[] args) {Clipboa…