javascript - 如何在 Angular 中单击时调用 ng-lightbox 指令?

标签 javascript html css angularjs angularjs-directive

我正在尝试在用户单击链接时生成一个灯箱。我正在使用这个灯箱代码 here .我正在处理这个 jsbin .

我这里有这段代码:

<button ng-click="add_overlay()">Button</button>
<div class="lightbox" ng-lightbox='{"trigger": "manual"}' id="lightbox">
  <h1>This is some content</h1>
</div>

我想通过添加 ng-click 来调用叠加层,它会在点击时显示它,但它似乎不起作用。我从不棱 Angular 分明,所以一般来说,任何帮助都将不胜感激。如何在点击时生成灯箱?

最佳答案

首先,在 ngLightbox 指令之外,您无法访问 add_overlay(),因此 Angular 不知道该方法在您的 上下文中是什么>ng-点击

您还使用了两个版本的 Angular 源代码,1.2.1 和 1.0.7。

如果您查看 angular-lightbox 源代码,您会看到一个可覆盖的 defaults 对象,这样您就可以提供您希望将灯箱应用到的元素:

var defaults = {
    'class_name': false,
    'trigger': 'manual',
    'element': element[0],
    'kind': 'normal'
}

所以,像这样设置你的按钮,指定预期的元素:

<button ng-lightbox='{"trigger": "manual", "element": "lightbox"}'>Button</button>

Here's a working demo .

关于javascript - 如何在 Angular 中单击时调用 ng-lightbox 指令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21799765/

相关文章:

javascript - 如何停止用鼠标滚动时相对放置的元素的抖动?

html - 如何在 100% 宽度包装器内居中 float 、多行 div?

html - 检查嵌入式YouTube视频是否已经开始

javascript - float 标签

javascript - 仅将更改应用于具有相同方法名称的多个元素中的单击元素

javascript - 将变量从自定义服务器传递到 NextJS 中的组件

html - 设计网页时我应该在CSS中使用哪个单位

css - 谷歌浏览器上的边界半径中断

javascript - $(document).on ('click' 多次触发

javascript - 使用 jasmine 运行 $.getJSON 时脚本不安全