1

问题:角带中是否有错误?还是我误解了 Angular 的工作原理,这是意料之中的?

我创建了一个 plunker 来演示这种行为

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

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

条件:

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

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

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

4

1 回答 1

1

这似乎适用于_popover.html

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

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

经过进一步调查......它可能发生在这里的某个地方:

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

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

更新

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

于 2014-02-09T06:23:19.513 回答