簡體   English   中英

從瀏覽器控制台調用Angular click事件

[英]Invoking an Angular click event from browser console

我正在檢查Angular應用程序上的DOM,並看到一個簡單的鏈接,如下所示:

<button type="button" class="button mini text right clear-all" ng-show="draft.roster.slotsFilled" ng-click="draft.resetRoster()" really="Are you sure you want to clear all players from your team?">

我想嘗試通過簡單地將draft.resetRoster();粘貼到此處來在瀏覽器控制台中直接調用ng-click命令draft.resetRoster(); 不幸的draft is not defined ,嘗試通過控制台訪問draft is not defined時,我draft is not defined 鏈接本身可以很好地工作。

訪問/調用ng-click屬性在此引用的代碼的最佳方法是什么?

ng-click僅注冊一個click事件,因此您可以通過選擇元素從控制台實際觸發click事件。 例:-

假設您的按鈕可以被所有這些CSS類唯一標識,則可以執行以下操作:

//You could use jquery as well if it is available, here some vanilla accessors.
document.querySelector('.button.mini.text.right.clear-all').click();
//If you have multiple, use querySelectorAll and 
//select the respective element or if you have an Id:
document.getElementById('#myButton').click();

或者您可以使用擴展名(如batarang(chrome))直接訪問范圍或使用來獲取元素的范圍

angular.element(elementRefGotFromOneOfTheAboveWays).scope().draft.resetRoster();`

如果您想查看DOM中反映的更改,則需要手動調用scope.$apply() ,即

var scope = angular.element(elementRefGotFromOneOfTheAboveWays).scope();
scope.draft.resetRoster();
scope.$apply();

使用Chrome安裝角度batarang擴展程序 ,然后右鍵單擊元素,單擊“檢查元素”,然后在控制台中輸入:

$scope.draft.resetRoster()

如果您要在角度服務中有要調用的方法,則可以執行以下操作來訪問該服務:

service = angular.element(document).injector().get('NameOfServiceHere')
service.somePropertyOrMethod()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM