角带工具提示无法在ng-repeat中工作

时间:2014-02-09 05:19:04

标签: angularjs tooltip popover angular-strap

问题:棱角分距带有错误吗?或者我是否误解了Angular是如何工作的,这是预期的?

I've created a plunker to demonstrate the behavior

我想要什么: 我想为ng-repeat中的每个项目显示不同的工具提示。

我看到的行为: 在某些情况下,工具提示内容未正确插入内容模板。因此,您只能看到模板,而不是内容模板或内容本身。

条件:

  • 首次加载页面时,工具提示按预期工作。
  • 将项目添加到ng-repeat时,其工具提示不会填充模板的内容部分。
  • 如果页面以ng-repeat中的零项目开始,则添加的 first 项目中的工具提示将按预期工作。之后添加的项目将显示问题。
  • 无论ng-repeat开头的项目数量多少,从中删除任何项目都会使将来添加的所有项目都没有工作提示。

思考:如果我把它烧掉,“第一次加载”就可以了。在那之后,它没有。我猜想会发生的事情是在第一轮将项目添加到ng-repeat之后会发生编译步骤。此时,angular-strap工具提示代码会查看指令属性,并设置这些工具提示和内容模板。 angular-strap错过了对ng-repeat的后续更改(即使我在控制台中可以看到每次更新ng-repeat列表时来自bs-popover=tooltip(item)的调用实际上都会运行)。但是我仍然感到难过,并且想知道这是否是我可以解决的行为。

如何在添加到ng-repeat的项目中允许动态工具提示?

1 个答案:

答案 0 :(得分:1)

这似乎适用于_popover.html

<div class="popover-content">{{content}}</div>

那是使用{{ }}而不是ng-bind ......非常奇怪。

经过进一步调查......它可能发生在这附近:

https://github.com/mgcrea/angular-strap/blob/master/src/tooltip/tooltip.js#L83

虽然我不知道在哪里/如何/什么。

<强>更新

所以bug(在Angular-Strap中)是缓存你的模板。初始检索(通过http)工作正常。但它将它们作为一个数组进行缓存,并在从缓存中检索(后续添加)时获取一个数组。哪个没有.data property,因此您的模板为空,并且您的ng-bind已被删除..