0

语境:AngularJS指令和串插

我申请上使用名为opensAsPopup的AngularJS指令一些DOM元素灯箱效果。

问题:

一些这些元素的动态内容从ng-repeat指令来了,看来我的opensAsPopup指令应用于串插之前

请问的字符串插值后应用lightbox效果


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

您可以使用AngularJS $ watch并设置超时功能。在这里有一个参考http://docs.angularjs.org/api/ng.$ro​​otScope.Scope – BKM

回答

4

你需要做的是在链接功能。范围不适用于链接阶段(在编译阶段之后)。也不要在同一元素上创建一个独立的作用域(删除scope: {}),因为这意味着您需要在链接函数中设置scope.entry.id。所以:

app.directive("opensAsPopup", [ -> 
    restrict: "A" 
    replace: false 
    transclude: false 
    link: (scope,tElement, tAttrs) -> 
    new lightbox(tElement.get(0)) 
])