Bunu yalnızca araç ipuçlarını dinamik olarak atıyorsanız okuyun
yani <div tooltip={{ obj.somePropertyThatMayChange }} ...></div>
Görünümle her zaman güncellenmeyen dinamik araç ipuçları ile ilgili bir sorun yaşadım. Örneğin, şöyle bir şey yapıyordum:
Bu tutarlı bir şekilde çalışmadı
<div ng-repeat="person in people">
<span data-toggle="tooltip" data-placement="top" title="{{ person.tooltip }}">
{{ person.name }}
</span>
</div>
Ve bunu şu şekilde aktive etmek:
$timeout(function() {
$(document).tooltip({ selector: '[data-toggle="tooltip"]'});
}, 1500)
Ancak, insanlar dizilim değişeceğinden, ipuçlarım her zaman güncellenmez. Bu konudaki her düzeltmeyi ve diğerlerini şanssız olarak denedim. Aksaklık, zamanın sadece% 5'inde oluyor gibiydi ve tekrar etmesi neredeyse imkansızdı.
Ne yazık ki, bu ipuçları projem için kritik öneme sahip ve yanlış bir araç ipucu göstermek çok kötü olabilir.
Sorun ne gibi görünüyordu
Bootstrap değerini kopyalayarak edildi title
yeni özelliğin mülk, data-original-title
ve kaldırma title
özelliği (bazen) Ben toooltips aktive ne zaman. Ancak, title={{ person.tooltip }}
yeni değeri değiştirdiğimde, her zaman mülke güncellenmez data-original-title
. Araç ipuçlarını devre dışı bırakmayı ve yeniden etkinleştirmeyi, yok etmeyi, bu mülke doğrudan bağlamayı ... her şeyi denedim. Ancak bunların her biri ya işe yaramadı ya da yeni sorunlar yarattı; nesnemden hem kaldırılan hem de bağlanmayan title
ve data-original-title
öznitelikleri gibi .
Ne işe yaradı
Belki de şimdiye kadar bastırdığım en çirkin kod, ancak bu küçük ama önemli sorunu benim için çözdü. Araç ipucu yeni verilerle her güncellendiğinde bu kodu çalıştırırım:
$timeout(function() {
$('[data-toggle="tooltip"]').each(function(index) {
if ($(this).attr("title").length > 0) {
$( this ).attr("data-original-title", $(this).attr("title"));
}
});
$timeout(function() {
$(document).tooltip({ selector: '[data-toggle="tooltip"]'});
}, 500);
}, 1500);
Aslında burada olan şey şudur:
- Özet döngüsünün tamamlanması ve
title
e-postaların güncellenmesi için biraz bekleyin (1500 ms) .
title
Boş olmayan bir özellik varsa (yani değişmişse), onu data-original-title
özelliğe kopyalayın, böylece Bootstrap'in araçları tarafından alınacaktır.
- Araç ipuçlarını yeniden etkinleştirin
Umarım bu uzun cevap benim gibi mücadele eden birine yardımcı olur.