1

質問: angular-strap にバグはありますか? それとも、Angular の仕組みを誤解していますか?これは想定内のことですか?

動作を示すためにプランカーを作成しました

私が欲しいもの: ng-repeat の各項目に異なるツールチップを表示したい。

発生している動作: 特定の条件下で、ツールヒント コンテンツがコンテンツ テンプレートに正しく挿入されません。したがって、テンプレートのみが表示され、コンテンツ テンプレートやコンテンツ自体は表示されません。

条件:

  • ページが最初に読み込まれると、ツールチップは期待どおりに機能します。
  • アイテムが ng-repeat に追加されると、そのツールチップはテンプレートのコンテンツ セクションに入力されません。
  • ページが ng-repeat のアイテムなしで始まる場合、追加された最初のアイテムのツールチップは期待どおりに機能します。それ以降に追加されたアイテムは問題を示します。
  • ng-repeat が開始するアイテムの数に関係なく、そこからアイテムを削除すると、将来追加されるすべてのアイテムにツールチップが機能しなくなります。

感想: 煮詰めると、「最初のロード」はうまくいきます。その後、そうではありません。アイテムを ng-repeat に追加する最初のラウンドの後に、コンパイルのステップが発生していると思います。その時点で、angular-strap ツールチップ コードはディレクティブ属性を確認し、それらのツールチップとコンテンツ テンプレートを設定します。ng-repeat へのその後の変更は、angular-strap によって見落とされます ( 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 に答える