【发布时间】:2016-06-03 22:21:23
【问题描述】:
我的 HTML 表单有很多我使用 ng-repeat 创建的问题。 我想为一些问题创建一个弹出窗口。 当我将触发弹出的按钮放在 ng-repeat 之外时,它可以工作。在 ng-repeat 里面没有。
这有效(ng-repeat 之前的按钮):
<div class="row">
<div class="col-md-12">
<button title="" data-toggle="popover" data-placement="top" data-trigger="hover" data-title="Popover on hover" data-content="And here's some amazing content. It's very engaging. Right?" class="btn btn-primary btn-wide">
hover
</button>
<div ng-repeat="q in config.questionnaire.questions">
制作这个:
这不起作用(ng-repeat 后的按钮):
<div class="row">
<div class="col-md-12">
<div ng-repeat="q in config.questionnaire.questions">
<button title="" data-toggle="popover" data-placement="top" data-trigger="hover" data-title="Popover on hover" data-content="And here's some amazing content. It's very engaging. Right?" class="btn btn-primary btn-wide">
hover
</button>
查看google chrome上的button元素,发现部分事件监听器被移除了:
这些是 ng-repeat 之前按钮的事件监听器:
这些是 ng-repeat 之后按钮的事件监听器:
如您所见,mouseover 和 mouse out 监听器消失了。
为什么?
我能做什么?
【问题讨论】:
-
似乎是
scope问题。因为在 ng-repeat 中,新的作用域是数组而不是整个控制器。 -
按钮标签不使用控制器中的任何内容。文本/内容是静态的。它只是重复。但它停止工作,因为鼠标悬停的侦听器消失了。
-
代码清单的屏幕截图不是代码清单。
-
对不起。我编辑并粘贴了屏幕截图上的代码。不是一个正在运行的示例,因为它太大了
标签: javascript jquery html angularjs mouseover