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)) 
])