中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

詳解在AngularJS的controller外部直接獲取$scope

發布時間:2020-09-30 10:34:24 來源:腳本之家 閱讀:286 作者:LaplaceDemon 欄目:web開發

以前利用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");

非常好的“外掛方式”。 

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

大同市| 昭苏县| 京山县| 阳泉市| 梨树县| 海阳市| 西丰县| 张家界市| 莱芜市| 灵川县| 册亨县| 蓝田县| 皋兰县| 元阳县| 桐城市| 原平市| 西充县| 常熟市| 定襄县| 阳东县| 岳普湖县| 金阳县| 榆林市| 滁州市| 墨脱县| 淮安市| 申扎县| 贵德县| 正镶白旗| 衡山县| 旬阳县| 永昌县| 云林县| 普陀区| 望城县| 得荣县| 铅山县| 诸城市| 东乌珠穆沁旗| 利川市| 忻城县|