模拟 AngularJS 的 ng-click 事件

3

我有一个包含以下按钮的HTML:

<button ng-click='showStats(player.data,0)'>Death Match</button> 
<button ng-click='showStats(player.data,1)'>Champions Rumble</button> 
<button ng-click='showStats(player.data,2)'>Full Profile</button>

您可能猜到了,当单击任何按钮时,相应的播放器统计数据将显示。这一点没有问题。现在,系统有一个额外的功能,即玩家可以设置默认显示其配置文件的哪个部分。
因此,当用户访问玩家配置文件时,假设玩家已将其配置文件显示优先级设置为1(冠军混战)。在这种情况下,我希望模拟第一次加载页面时中间按钮的点击,以便显示相应的配置文件部分。然后,访问者可以单击任何一个按钮,即可显示该部分配置文件,就像现在正在做的那样。
这个可以实现吗?我已经尝试了几个小时了。非常感谢您的任何帮助!
3个回答

2
$scope.showStats(data, defaultOption); // in your controller when user profile loaded

0
如果我理解正确的话,当按钮被点击时,您想要显示某些内容,但这个内容取决于您的模型状态。因此,我会在ngClick上运行一个函数,并让该函数根据模型的状态执行不同的操作。

-3

你可以使用jQuery模拟点击事件。

$('#button2').click()
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<button onclick=$('div').html('button1_click')>Button 1</button>
<button onclick=$('div').html('button2_click') id=button2>Button 2</button>
<button onclick=$('div').html('button3_click')>Button 3</button>
<div></div>

在你的代码中,你可以这样做:
$('button:contains("Champions Rumble")').click()

为什么你可以直接调用函数,却要模拟点击呢? - tao
1
因为问题是如何模拟点击。 - Aminadav Glickshtein
问题是如何模拟点击,答案就像其他两个回答所述,您不需要模拟点击。您的答案并非Angular解决方案,但您正在争论ng-init的正确用法。记录一下,我认为在ng-init上调用控制器上的函数没有任何问题。这可能比直接在控制器中调用相同的函数更好,因为您可能有另一个与相同控制器关联的视图,该视图不需要在初始化时启动统计信息。 - net.uk.sweet

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接