上下文
我正在使用名为opensAsPopup
的AngularJS指令对某些DOM元素应用Lightbox效果。
问题:
其中一些元素的动态内容来自ng-repeat
指令,似乎我的opensAsPopup
指令在字符串插值之前应用。
在字符串插值后,是否可以应用灯箱效果?
HTML:
<li>
<a href="/path/to/{{entry.id}}" opens-as-popup>Link</a>
</li>
脚本:
app.directive("opensAsPopup", [ ->
restrict: "A"
scope: {}
replace: false
transclude: false
compile: (tElement, tAttrs) ->
new lightbox(tElement.get(0))
])
答案 0 :(得分:4)
您需要在链接功能中执行此操作。范围直到链接阶段(在编译阶段之后)才适用。另外,不要在同一元素上创建一个独立的范围(已删除scope: {}
),因为这意味着您需要在链接函数中设置scope.entry.id
。所以:
app.directive("opensAsPopup", [ ->
restrict: "A"
replace: false
transclude: false
link: (scope,tElement, tAttrs) ->
new lightbox(tElement.get(0))
])