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

时间:2014-02-15 15:46:59

标签: 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来调用叠加层,它会在点击时显示它,但它似乎不起作用。我永远不会有角度,所以任何帮助一般都会受到赞赏。如何在点击时生成灯箱?

1 个答案:

答案 0 :(得分:3)

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

您还使用两个版本的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