Angularjs 使用$scope.ngRepeat在指令中创建重复项
我有一个指令,通过模板将动态数据放入qTip。它通过获取模板并在模板上使用Angularjs 使用$scope.ngRepeat在指令中创建重复项,angularjs,angularjs-directive,coffeescript,qtip2,Angularjs,Angularjs Directive,Coffeescript,Qtip2,我有一个指令,通过模板将动态数据放入qTip。它通过获取模板并在模板上使用$compile来实现(请原谅coffeescript): generateQtip只是在directive元素上创建一个新的qTip,并将第一个参数作为options对象的content属性 但是,每次我打开qTip时,模板中的ngRepeat会生成重复列表,即使使用limito作为过滤器也是如此。示例代码: <ul> <li ng-repeat="person in object.people
$compile
来实现(请原谅coffeescript):
generateQtip
只是在directive元素上创建一个新的qTip,并将第一个参数作为options对象的content
属性
但是,每次我打开qTip时,模板中的ngRepeat
会生成重复列表,即使使用limito
作为过滤器也是如此。示例代码:
<ul>
<li ng-repeat="person in object.people | limitTo:3 track by $index">{{person.name}}</li>
</ul>
- {{person.name}
在我打开qTip时第一次生成以下内容:
- 无名氏
- 无名氏
- 约翰尼·道伊
- 无名氏
- 无名氏
- 约翰尼·道伊
- 无名氏
- 无名氏
- 约翰尼·道伊
- 无名氏
- 无名氏
- 约翰尼·道伊
- 无名氏
- 无名氏
- 约翰尼·道伊
- 无名氏
- 无名氏
- 约翰尼·道伊
为什么会发生这种情况?有什么想法吗?这是我的完整指令代码。不知道为什么,但我只需将
$compile
移到更里面
$http.get scope.qtipTemplate, cache: $templateCache
.then (html) ->
generateQtip text: ->
scope.$apply ->
$compile(html.data)(scope)
您介意提供指向完整指令代码的正确链接吗?我还会发布:(函数(){$http.get(scope.qtipTemplate,{cache:$templateCache})。然后(函数(html){var clone;clone=$compile(html.data);返回generateQtip({text:function(){return scope.$apply(函数(){returnclone(scope);});}}}});}.call(this));作为您的代码,而不是使用咖啡脚本,因为没有多少人知道如何阅读或编写咖啡脚本。此外,您的指令代码链接已断开。这是一个愚蠢的问题,但由于指向完整代码的链接不起作用,而且我远不是咖啡专家,您是否在分配回数组之前清除了该数组?抱歉,修复了该链接。@tuckerjt07 which数组?不,我正在分配范围。不管怎样,我解决了这个问题,我会尽快发布答案
$http.get scope.qtipTemplate, cache: $templateCache
.then (html) ->
generateQtip text: ->
scope.$apply ->
$compile(html.data)(scope)