Bootstrap的最新Beta版本(v4)使用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();
    });
}

这应该先加载 bootstrap 依赖项,然后再执行代码。因此,通常在这段代码之前应包含Tether。

但是控制台结果是



有人有同样的问题吗?

最佳答案

创建一个这样的脚本:

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

09-27 00:53