Подсказка Tether с requireJS
Последняя бета-версия (v4) Bootstrap использует Tether js для позиционирования элементов, я не могу позволить ей работать в моем приложении Requirejs.
в моем конфиге requirejs у меня есть следующие шим
paths: {
jquery: '/path/to/jquery',
tether: '/path/to/tether'
},
shim: {
'bootstrap': ['tether', 'jquery']
}
И когда я хочу активировать всплывающие подсказки в своем приложении, я использую следующий код, который я считаю правильным
function page_events() {
requirejs(['bootstrap'], function(bootstrap) {
$('[data-toggle="tooltip"]').tooltip();
});
}
Это должно загрузить загрузочные зависимости сначала, а затем выполнить код. Поэтому обычно этот элемент должен быть включен перед этим фрагментом кода.
Но результат консоли
Uncaught ReferenceError: Tether не определен
У кого-нибудь есть такая же проблема?
2 ответа
Создайте скрипт как этот:
define(['lib/tether.min'], function(tether) {
window.Tether = tether;
return tether;
});
Затем измените это:
paths: {
jquery: '/path/to/jquery',
// tether: '/path/to/tether'
tether: '/path/to/your-own-tether'
},
shim: {
'bootstrap': ['tether', 'jquery']
}
Зачем? потому что браузеру нужно это:
window.Tether = tether; // May be both requirejs and tether didn't do this
Если вы хотите, чтобы Tether был доступен глобально, вы должны включить его вручную с тегом script. RequireJS не раскрывает это.
<script type="text/javascript" src="/js/tether.js"></script>
<script type="text/javascript" src="/js/optimized.min.js"></script>