10

Bootstrap の最新のベータ版 (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(); 
    }); 
}

これにより、最初にブートストラップの依存関係が読み込まれ、その後でコードが実行されます。したがって、通常、このコードの前に Tether を含める必要があります。

しかし、コンソールの結果は

Uncaught ReferenceError: テザーが定義されていません

誰も同じ問題を抱えていますか?

4

2 に答える 2

7

次のようなスクリプトを作成します。

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
于 2016-01-08T17:01:51.913 に答える