我正在检查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?">
我想通过简单地粘贴ng-click
来尝试直接在浏览器控制台中调用draft.resetRoster();
命令。不幸的是,当我尝试通过控制台访问它时,我得到draft is not defined
。虽然链接工作完全正常。
访问/调用ng-click
属性在此处引用的代码的最佳方法是什么?
答案 0 :(得分:2)
ng-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();
答案 1 :(得分:1)
使用Chrome,安装angular batarang extension,然后只需右键单击该元素,点击“Inspect element”,然后在控制台中输入:
String.Format("{0}\t{1}\t...", table[row][0],table[row][1],...)
如果您想要调用角度服务中的方法,则可以通过执行以下操作来访问该服务:
$scope.draft.resetRoster()