Тротуар подсказки с requireJS

последняя бета-версия (v4) из Bootstrap использует привязку 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(); 
    }); 
}

Это должно сначала загружать зависимости бутстрапов, а затем выполнять код. Поэтому обычно Tether должен быть включен перед этим фрагментом кода.

Но результат консоли -

Неподготовлено ReferenceError: Tether не определен

Есть ли у кого-то такая же проблема?

Ответ 1

Создайте script следующим образом:

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

Ответ 2

если вы хотите, чтобы Tether был доступен глобально, вы должны включить его вручную с тегом script. RequireJS не раскрывает его.

<script type="text/javascript" src="/js/tether.js"></script>
<script type="text/javascript" src="/js/optimized.min.js"></script>