我有一个指令,通过模板将动态数据放入qTip。它通过获取模板并在其上使用$compile
来做到这一点(原谅coffeescript):
$http.get scope.qtipTemplate, cache: $templateCache
.then (html) ->
clone = $compile html.data
generateQtip text: ->
scope.$apply ->
clone scope
generateQtip
只是在directive元素上创建一个新的qTip,并将第一个参数作为content
属性放在options对象上。
但是,每次打开qTip时,模板中的ngRepeat
都会生成重复列表,即使使用limitTo
作为过滤器也是如此。示例代码:
<ul>
<li ng-repeat="person in object.people | limitTo:3 track by $index">{{person.name}}</li>
</ul>
生成以下第一次时间我打开qTip:
- John Doe
- Jane Doe
- Johnny Dowy
这是第二次时间:
- John Doe
- Jane Doe
- Johnny Dowy
- John Doe
- Jane Doe
- Johnny Dowy
这是第三次时间:
- John Doe
- Jane Doe
- Johnny Dowy
- John Doe
- Jane Doe
- Johnny Dowy
- John Doe
- Jane Doe
- Johnny Dowy
依此类推,等等。
为什么会这样?有任何想法吗?这是我在this link中的完整指令代码。
答案 0 :(得分:0)
不确定原因,但我只需要进一步移动$compile
。
$http.get scope.qtipTemplate, cache: $templateCache
.then (html) ->
generateQtip text: ->
scope.$apply ->
$compile(html.data)(scope)